Obtener el número de línea mientras usa grep
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.
grep -n SEARCHTERM file1 file2 ...
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
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