Terminal - consulta GREP do Macbook

Terminal - consulta GREP do Macbook

Estou usando com sucesso o seguinte comando de terminal para encontrar texto específico em meu arquivo csv muito grande e criando um arquivo csv separado como saída:

grep "text" filename.csv > outputfile.csv

Existe alguma maneira de usar um comando semelhante para pesquisar vários textos diferentes e salvá-los no mesmo arquivo de saída?

Responder1

Você pode pesquisar vários padrões com -e:

grep -e text1 -e text2 filename.csv > outputfile.csv

Testado com implementações GNU grep, FreeBSD grep e busybox grep, também especificadas em POSIX. É assim que -eé explicado na página de manual do GNU grep:

   -e PATTERN, --regexp=PATTERN
          Use PATTERN as the pattern.  If this option is used
          multiple times or is combined with the -f (--file)
          option, search for all patterns given.  This option can
          be used to protect a pattern beginning with "-".

Responder2

Em princípio, você poderia usar uma alternativa no estilo "OR" em sua expressão regular:

grep "text1\|text2" filename.csv > outputfile.csv

ou

grep -E "text1|text2" filename.csv > outputfile.csv

A sintaxe disponível dependerá um pouco de qual versão grepvocê instalou (o acima definitivamente funciona no GNU grep).

Responder3

Se quiser pesquisar strings diferentes, você pode usar egrepou grep -E:

egrep "text|string|word|" filename.csv > outputfile.csv

grep -E "seal|walrus|otter" filename.csv > outputfile.csv

Eles imprimirão linhas contendo qualquer uma dessas strings. Você também pode combiná-los com outras opções, como:

egrep -v "text|string|word|" filename.csv > outputfile.csv

Isso imprimirá linhas que não contêm nenhuma dessas strings.

informação relacionada