Inicio·Comandos de terminal

grep

Procesado de texto

Uso

grep -rn '[pattern]' [path]

Extrae las líneas que casan con un patrón; usa regex básica por defecto, así que + ? | y () requieren -E o una barra invertida.

Opciones habituales

OpciónSignificado
-iIgnore case
-rSearch a whole directory tree; -R also follows symlinks
-nPrint the line number of each hit
-vInvert: print the lines that do not match
-lPrint only the names of the files that matched
-wMatch whole words only
-EExtended regex, so + ? | and () work unescaped
-CPrint N lines of context around each hit

Ejemplos

grep -rn 'TODO' src/

Every TODO in the tree, with file and line.

grep -v '^#' nginx.conf

Drops the comment lines.

ps aux | grep '[n]ginx'

Finds nginx without matching the grep itself.

Están hechos para encadenarse con tuberías. Tres comandos unidos suelen ser más cortos que uno que lo haga todo.

Cómo leerlo

  • Los corchetes [ ] marcan una parte que puedes omitir.
  • Los puntos suspensivos … indican que puedes poner varios.
  • Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.

Preguntas

Q. ¿Qué hace grep?

Extrae las líneas que casan con un patrón; usa regex básica por defecto, así que + ? | y () requieren -E o una barra invertida.

Q. ¿Cómo se escribe?

grep -rn '[pattern]' [path] — los corchetes marcan lo que puedes omitir.

Q. ¿Cuántas opciones vale la pena saber?

Aquí van 8; la lista completa está en man grep. Este comando está en Procesado de texto.

Comandos relacionados

página man: man grep