2012-05-14 17 views
29

Ist grep in der Lage, die Zeilennummer, auf der das angegebene Wort erscheint?Suchen Sie die Zeilennummer, wo ein bestimmtes Wort mit "grep"

Auch ist es möglich, grep zu verwenden, um nach einem Wort zu suchen, das von einer bestimmten Linie abwärts beginnt?

+1

Ich glaube, das wäre eine bessere Lösung für [SuperUser] (http://superuser.com/). –

+4

@dunsmoreb Ich stimme nicht zu. 'Grep' ist ebenso ein Programmierwerkzeug wie ein Power-User-Tool. –

+0

Ich benutze 'Grep' die ganze Zeit. Aber das ist wirklich keine Programmierfrage. –

Antwort

44

Verwenden Sie grep -n, um die Zeilennummer einer Übereinstimmung zu erhalten.

Ich glaube nicht, dass es eine Möglichkeit gibt, grep auf einer bestimmten Zeilennummer zu starten. Verwenden Sie dazu sed. Zum Beispiel in Zeile 10 zu starten und die Zeilennummer und Zeile für passende Zeilen drucken, verwenden Sie:

sed -n '10,$ { /regex/ { =; p; } }' file 

nur die Zeilennummern zu erhalten, Sie

grep -n 'regex' | sed 's/^\([0-9]\+\):.*$/\1/' 

verwenden könnten Oder Sie könnte einfach sed verwenden:

,
sed -n '/regex/=' file 

die beiden sed Befehle Kombinieren Sie erhalten:

sed -n '10,$ { /regex/= }' file 
+0

Ok, also würde grep -n die Zeile zurückgeben, die die Wörter UND die Zeilennummer enthält. Gibt es überhaupt eine NUR die Zeilennummer? –

+0

@OneTwoThree Siehe meine Änderungen. –

+0

@OneTwoThree Hat das für Sie funktioniert? –

3

Sie können tail +[line number] [file] und eine Pipe an grep -n nennen, die die Zeilennummer zeigt:

tail +[line number] [file] | grep -n /regex/ 

Das einzige Problem mit dieser Methode ist, die von grep -n berichtet Zeilennummern [line number] - 1 kleiner als die tatsächliche Zeilennummer sein in [file].

1

Oder Sie können

grep -n . file1 |tail -LineNumberToStartWith|grep regEx 

Diese verwenden wird in der Datei kümmern die Linien der Nummerierung

grep -n . file1 

Dies wird die Last-LineNumberToStartWith

tail -LineNumberToStartWith 

Und schließlich ausdrucken grep die gewünschten Zeilen (einschließlich Zeilennummer wie in orignal Datei)

Verwandte Themen