Terminal - Consulta GREP de Macbook

Terminal - Consulta GREP de Macbook

Estoy usando con éxito el siguiente comando de terminal para buscar texto específico en mi archivo csv muy grande y creando un archivo csv separado como salida:

grep "text" filename.csv > outputfile.csv

¿Hay alguna forma de utilizar un comando similar para buscar varios textos diferentes y guardarlos en el mismo archivo de salida?

Respuesta1

Puede buscar múltiples patrones con -e:

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

Probado con implementaciones GNU grep, FreeBSD grep y togetherbox grep, también especificadas en POSIX. Así es como -ese explica en la página de manual de 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 "-".

Respuesta2

En principio, podrías utilizar una alternativa de estilo "O" en tu expresión regular:

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

o

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

La sintaxis disponible dependerá en cierta medida de la versión que grephaya instalado (lo anterior definitivamente funciona en GNU grep).

Respuesta3

Si desea buscar diferentes cadenas, puede utilizar egrepo grep -E:

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

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

Esos imprimirán líneas que contengan cualquiera de esas cadenas. También puedes combinarlos con otras opciones como:

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

Eso imprimirá líneas que no contienen ninguna de esas cadenas.

información relacionada