ls correspondência de padrões

7

Eu sei que [] está funcionando em ls padrão de correspondência:

$ ls
foo.c  foo.h
$ ls foo.[ch]
foo.c  foo.h

mas não consigo encontrar onde isso está documentado.

Gostaria de saber a sintaxe que corresponderia a estas:

$ ls
foo.asd  foo.qwe

Este é o melhor palpite que eu tive: ls foo.[{asd}{qwe}] . Não funcionou.

    
por Gauthier 22.04.2015 / 16:56

2 respostas

10

Acho que você está procurando a expansão da chave {asd,qwe} :

$ ls foo.{asd,qwe}
foo.asd  foo.qwe
    
por 22.04.2015 / 17:02
2

O padrão de globbing seria ls foo.@(asd|qwe) . Isso funciona

  • fora da caixa em ksh;
  • no bash também se "globbing estendido" estiver ativado com shopt -s extglob ;
  • no zsh se globs no estilo ksh forem ativados com setopt ksh_glob .
por 22.04.2015 / 17:00