Obtener el número de línea mientras usa grep

Resuelto sai asked hace 14 años • 7 respuestas

Estoy usando grep recursivo para buscar una cadena en archivos, y todos los archivos coincidentes y las líneas que contienen esa cadena se imprimen en la terminal. ¿Pero es posible obtener también los números de línea de esas líneas?

Ejemplo: actualmente, lo consigo /var/www/file.php: $options = "this.target", pero estoy tratando de llegar /var/www/file.php: 1142 $options = "this.target";, bueno, ¿dónde?1142 estaría el número de línea que contiene esa cadena?

La sintaxis que estoy usando para grep recursivamente essudo grep -r 'pattern' '/var/www/file.php'

¿Cómo obtenemos resultados que no son iguales a un patrón? Como todos los archivos, pero no los que tienen una determinada cadena.

sai avatar Jul 09 '10 21:07 sai
Aceptado
grep -n SEARCHTERM file1 file2 ...
Miro A. avatar Jul 09 '2010 14:07 Miro A.

Los números de línea están impresos con grep -n:

grep -n pattern file.txt

Para obtener sólo el número de línea (sin la línea coincidente), se puede utilizar cut:

grep -n pattern file.txt | cut -d : -f 1

Las líneas que no contienen un patrón se imprimen con grep -v:

grep -v pattern file.txt
carlodef avatar Jan 28 '2014 17:01 carlodef

Si desea solo el número de línea, haga esto:

grep -n Pattern file.ext | gawk '{print $1}' FS=":"

Ejemplo:

$ grep -n 9780545460262 EXT20130410.txt | gawk '{print $1}' FS=":" 
48793
52285
54023
Cloud Falls avatar Aug 14 '2013 22:08 Cloud Falls