expressões regulares / correspondência de padrões na linha de comando do ubuntu

0

Noto que muitos utilitários bash como ls , cp , mv , grep usam expressões regulares e correspondência de padrões. Por exemplo, símbolos como * [] {} etc.

No entanto, acho que isso é diferente em relação a outros tutoriais de expressões regulares que eu encontro na Internet. Existe um padrão específico que esses utilitários seguem ou uma lista abrangente de atalhos em algum lugar?

Obrigado

    
por simplename 20.05.2016 / 16:45

1 resposta

3

Embora semelhante, os padrões de curinga a que você está se referindo não são expressões regulares; eles são padrões de glob e, nesse contexto, padrões de shell . Eles são expandidos pelo próprio shell - não por comandos como ls , cp , etc. Só para esclarecer, esses comandos não são realmente “utilitários bash”; eles são programas que podem ser executados por qualquer shell .

Quando um comando é digitado em um shell, o shell analisa os tokens (palavras) e uma das coisas que ele faz é expandir glob patterns para nomes de arquivos apropriados. No caso mais comum, esses nomes de arquivos são fornecidos pelo shell como uma lista de argumentos para o comando que está sendo chamado.

Padronização

Esses padrões de shell foram padronizados para sistemas operacionais semelhantes a Unix no POSIX especificação: Notação de correspondência de padrões .

Alguns shells (Bash e o shell Korn) vão além e estendem esses padrões para implementar globs estendidos . Para mais informações, consulte a seção relevante no Wiki do Greg .

    
por Anthony Geoghegan 20.05.2016 / 23:50