AWK-
Verwendung AWK- das ist so einfach wie möglich:
awk '/yellow/,0' textfile.txt
Probelauf
$ awk '/yellow/,0' textfile.txt
yellow
red
orange
more orange
more blue
this is enough
Grep
Sie können auch verwenden , grepmit --after-contextOption, gewisse Linien nach dem Spiel zu drucken
grep 'yellow' --after-context=999999 textfile.txt
Für die automatische Einstellung des Kontexts können Sie verwenden $(wc -l textfile.txt). Die Grundidee ist, dass, wenn Sie eine erste Zeile als Übereinstimmung haben und alles nach dieser Übereinstimmung drucken möchten, Sie die Anzahl der Zeilen in der Datei minus 1 kennen müssen. Glücklicherweise --after-contextwerden keine Fehler über die Anzahl der Zeilen ausgegeben Zeilen, so dass Sie die Nummer vollständig außerhalb des Bereichs angeben können, aber falls Sie es nicht wissen, reicht die Gesamtzahl der Zeilen aus
$ grep 'yellow' --after-context=$(wc -l < textfile.txt) textfile.txt
yellow
red
orange
more orange
more blue
this is enough
Wenn Sie den Befehl kürzen möchten, --after-contextist dies die gleiche Option wie -Aund $(wc -l textfile.txt), wird auf die Anzahl der Zeilen gefolgt vom Dateinamen erweitert. Auf diese Weise tippen Sie textfile.txtnur einmal
grep "yellow" -A $(wc -l textfile.txt)
Python
skolodya@ubuntu:$ ./printAfter.py textfile.txt
yellow
red
orange
more orange
more blue
this is enough
DIR:/xieerqi
skolodya@ubuntu:$ cat ./printAfter.py
#!/usr/bin/env python
import sys
printable=False
with open(sys.argv[1]) as f:
for line in f:
if "yellow" in line:
printable=True
if printable:
print line.rstrip('\n')
Oder alternativ ohne printableFlagge
#!/usr/bin/env python
import sys
with open(sys.argv[1]) as f:
for line in f:
if "yellow" in line:
for lines in f: # will print remaining lines
print lines.rstrip('\n')
exit()
grepBefehl vereinfachengrep "yellow" -A $(wc -l textfile.txt).