[ad_1]
grep
é um utilitário de pesquisa do Linux usado para pesquisar conteúdo. Por padrão, ele imprimirá qualquer linha que corresponda, o que pode incluir um grande número de resultados. Se você se importa apenas com a primeira correspondência, pode limitar a saída apenas à primeira linha.
Limite a saída com grep -m
a grep
O comando tem um -m
qualquer --max-count
parâmetror, que pode resolver esse problema, mas pode não funcionar conforme o esperado.
Este parâmetro irá grep
pare a correspondência depois de encontrar N linhas correspondentes, o que funciona muito bem, pois limitará a saída a uma linha, que sempre contém a primeira correspondência. Podemos verificar isso com -n
banner para imprimir os números de linha.
grep -m 1 "foo" file
No entanto, isso tem algumas desvantagens que você deve estar ciente. Não para após N fósforospára após N linhas. Isso causará grep
para corresponder várias vezes em cada linha, o que pode ser um problema quando usado com o -o
flag, que imprime cada correspondência em uma nova linha.
Além disso, são apenas N linhas. por arquivoentão, quando usado em vários arquivos, ele imprimirá a primeira linha correspondente para cada arquivo.
Usando head para limitar a saída do grep
A alternativa é canalizar a saída para um comando diferente, head
, que simplesmente cortará a entrada após N linhas. Ainda um pouco prático de usar -m 1
com grep
no entanto, pois ele interromperá o processamento de arquivos grandes se uma correspondência for encontrada mais cedo.
grep "foo" file_one.txt | head -1
Isso funciona com -o
sinalizador para imprimir apenas a primeira correspondência, mesmo se houver várias correspondências em um arquivo:
No entanto, tenha cuidado ao usar isso com vários arquivos. Vestindo head
imprimirá a primeira linha correspondente em qualquer arquivo. Isso pode ser um problema como grep
imprime a saída na ordem em que processa os arquivos e você pode não saber a ordem em que os arquivos serão processados, a menos que você os classifique manualmente antes de passá-los para grep
.
Da mesma forma, você também pode usar tail
para imprimir a última linha correspondente.
[ad_2]