printing - por - grep buscar palabra exacta
Obtenga el número de línea mientras usa grep (6)
Los números de línea se imprimen con grep -n
:
grep -n pattern file.txt
Para obtener solo el número de línea (sin la línea correspondiente), se puede usar 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
Estoy utilizando grep recursiva para buscar archivos en una cadena, y todos los archivos coincidentes y las líneas que contienen esa cadena se imprimen en el terminal. Pero, ¿es posible obtener los números de línea de esas líneas también?
ej: actualmente lo que obtengo es /var/www/file.php: $options = "this.target"
, pero lo que estoy tratando de obtener es /var/www/file.php: 1142 $options = "this.target";
, bien donde 1142
sería el número de línea que contiene esa cadena.
La sintaxis que estoy usando para grep recursivamente es sudo grep -r ''pattern'' ''/var/www/file.php''
Una pregunta más es, ¿cómo obtenemos resultados para no igual a un patrón? ¿Como todos los archivos pero no los que tienen una cierta cadena?
Para mostrar los resultados con los números de línea, puede intentar esto
grep "word to search for" /path/to/file/file -nr
El resultado debería ser algo como esto:
linenumber: data data data word to search for data data
Si solo quieres el número de línea haz esto:
grep -nr Pattern file.ext | gawk ''{print $1}'' FS=":"
Ejemplo:
$ grep -nr 9780545460262 EXT20130410.txt | gawk ''{print $1}'' FS=":"
48793
52285
54023
grep -nr directorio "cadena de búsqueda"
Esto le da la línea con el número de línea.
grep -A20 -B20 pattern file.txt
Buscar patrón y mostrar 20 líneas antes y después del patrón
grep -nr SEARCHTERM file1 file2 ...