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

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

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

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

Obrigado

Responder1

Embora semelhantes, os padrões curinga aos quais você está se referindo não são expressões regulares; eles sãopadrões globaise neste contexto,padrões de concha. 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 na verdade “utilitários bash”; são programas que podem ser executados porqualquerconcha.

Quando um comando é digitado em um shell, o shell analisa os tokens (palavras) e uma das coisas que faz é expandirpadrões globaisem 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 invocado.

Estandardização

Esses padrões de shell foram padronizados para sistemas operacionais do tipo Unix noPOSIX especificação:Notação de correspondência de padrões.

Alguns shells (Bash e Korn Shell) vão além e estendem esses padrões para implementarglobos estendidos. Para obter mais informações, consulte a seção relevante emWiki de Greg.

informação relacionada