Compreendendo o grep --label =

6

Estou procurando uma explicação de como grep --label=LABEL funciona: talvez alguém possa me dar um exemplo [ou dois] sobre o --label= .

Entendo o que grep e zgrep devem fazer - o último é mencionado na entrada em --label= no info page :

... especially useful when implementing tools like 'zgrep'

98% do que eu encontrei até agora é copiar / colar de info grep e as outras duas porcentagens que o comando está embutido em um script que eu não entendo.

    
por erch 06.05.2013 / 19:38

1 resposta

9

Esse recurso facilita a leitura da saída de grep . Se você quiser verificar os dados que grep não pode ler diretamente, você pode acabar usando um canal para alimentar o grep em vez de criar um arquivo temporário que grep possa ler. Se você não quer um arquivo temporário (por exemplo, porque seria enorme), então sem --label você teria o problema de que grep não pode imprimir a informação em qual arquivo a correspondência foi encontrada.

Isso

echo $'fubar\nbaz\nbat' | grep --label=inputfile -H a
inputfile:fubar
inputfile:baz
inputfile:bat

é equivalente a

echo $'fubar\nbaz\nbat' > inputfile
grep -H a inputfile
inputfile:fubar
inputfile:baz
inputfile:bat

Sem --label , a primeira abordagem não funcionaria (ou seja, não forneceria a saída desejada), portanto você teria que fazer algo assim:

echo $'fubar\nbaz\nbat' | grep a | awk '{print "inputfile:" $0}'

Mas isso não oferece realce de correspondência no console.

    
por 06.05.2013 / 19:54