Quando canalizado com ls, grep no solaris não está funcionando

3

Estou usando o comando abaixo no solaris

ls -l | grep '*PROC*'

Mas não está funcionando. Eu tenho muitos arquivos que contêm "PROC" em seu nome como "XREF_PROC.complete", mas quando eu uso o comando acima não está mostrando qualquer saída. Quando eu uso ls *PROC* está funcionando mas não está trabalhando com grep.

Obrigado

    
por sandywho 24.07.2015 / 11:56

1 resposta

10

tl; dr

Você não precisa de um quantificador, apenas grep para o PROC:

ls | grep PROC

versão longa

O asterisco na sua linha ls não é igual ao da sua linha grep .

Quando você tem um asterisco sem escape na linha de comando, o shell irá expandi-lo antes que ls o veja, isso é chamado globbing . Apenas um asterisco se expande para todos os arquivos no diretório atual, tente por exemplo echo * . O *PROC* glob será expandido para todos os arquivos contendo PROC.

O asterisco que você está usando com grep é com aspas simples e, portanto, será interpretado por grep . No entanto, grep usa BREs por padrão (Basic Regular Expressions), onde o asterisco funciona como um quantificador, e assim requer algum caráter ou classe de personagem para quantificar, por exemplo '.*' .

    
por 24.07.2015 / 12:13