it-swarm.com.de

Zeilennummer während der Verwendung von grep erhalten

Ich verwende grep rekursiv, um Dateien nach einer Zeichenfolge zu durchsuchen. Alle übereinstimmenden Dateien und die Zeilen, die diese Zeichenfolge enthalten, werden auf dem Terminal gedruckt. Aber ist es auch möglich, die Zeilennummern dieser Zeilen zu erhalten?

beispiel: derzeit bekomme ich /var/www/file.php: $options = "this.target", aber was ich versuche, ist /var/www/file.php: 1142 $options = "this.target";, wobei 1142 die Zeilennummer wäre, die diesen String enthält.

Die Syntax, die ich zum regressiven Grep verwende, ist Sudo grep -r 'pattern' '/var/www/file.php'

Eine weitere Frage ist, wie wir Ergebnisse erzielen, die nicht einem Muster entsprechen. Wie alle Dateien, aber nicht die mit einer bestimmten Zeichenfolge?

303
sai
grep -nr SEARCHTERM file1 file2 ...
480
Miro A.

Zeilennummern werden mit grep -n gedruckt:

grep -n pattern file.txt

Um nur die Zeilennummer (ohne die entsprechende Zeile) zu erhalten, kann man cut verwenden:

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

Zeilen nicht , die ein Muster enthalten, werden mit grep -v gedruckt:

grep -v pattern file.txt
129
carlito

Wenn Sie nur die Zeilennummer wünschen, tun Sie dies: 

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

Beispiel:

$ grep -nr 9780545460262 EXT20130410.txt | gawk '{print $1}' FS=":" 
48793
52285
54023
23
Cloud Falls
grep -A20 -B20 pattern file.txt

Suchmuster und 20 Zeilen nach und vor dem Muster anzeigen

6
emilio

Um die Ergebnisse mit den Zeilennummern anzuzeigen, können Sie dies versuchen

grep "Word to search for" /path/to/file/file -nr

Das Ergebnis sollte ungefähr so ​​aussehen:

linenumber: data data data Word to search for data data
0
Fouad Djebbar

grep -nr "Suchstring" Verzeichnis

Dadurch erhalten Sie die Zeile mit der Zeilennummer.

0
randomguy