grep + A: drucke alles nach dem Match aus [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie erhalte ich den Teil der Datei nach der Zeile, die dem Ausdruck grep entspricht? (erstes Spiel 12 answersHallo, ich habe eine Datei enthält eine Liste von URLs, sieht wie folgt aus:
file1:
http://www.google.com
http://www.bing.com
http://www.yahoo.com
http://www.baidu.com
http://www.yandex.com
....
Ich möchte alle Datensätze erhalten, nachdem:http: //www.yahoo.co, die Ergebnisse sehen wie folgt aus:
file2:
http://www.baidu.com
http://www.yandex.com
....
Ich weiß, dass ich grep verwenden könnte, um die Zeilennummer von yahoo.com mit @ zu find
$grep -n 'http://www.yahoo.com' file1
3 http://www.yahoo.com
Aber ich weiß nicht, wie ich die Datei nach Zeilennummer 3 erhalten soll. Außerdem weiß ich, dass in grep-A eine Markierung vorhanden ist, mit der die Zeilen nach Ihrer Übereinstimmung gedruckt werden. Sie müssen jedoch angeben, wie viele Zeilen Sie nach dem Abgleich benötigen. Ich frage mich, ob es etwas gibt, um dieses Problem zu umgehen. Mögen
PSEUDO CODE:
$ grep -n 'http://www.yahoo.com' -A all file1 > file2
Ich weiß, wir könnten die Zeilennummer verwenden, die ich bekommen habe, und wc -l, um die Anzahl der Zeilen nach yahoo.com zu erhalten, aber .. fühlt sich ziemlich lahm an.
Freuen Sie sich auf eine praktische und einfache Lösung. Sie können mich gerne dafür kritisieren, dass ich das Problem gleich zu Beginn komplexer gemacht habe. Auch awk- und sed-Befehle sind willkommen!