Ich muss ein Shell-Skript schreiben, das die Phrase „Candy Land“ findet und die 10 Zeilen um die Zeile herum ausgibt, in der das Wort vorkommt. Nehmen wir an, es wird nur einmal gefunden.
Ich weiß nicht, was mit Shell-Programm und Drucken der 10 Zeilen um dieses Wort herum gemeint ist. Vielleicht mit Kopf/Schwanz.
Ich weiß, dass Sie die Phrase mit grep folgendermaßen finden können:
grep 'Candy Land' file
Aber ich glaube nicht, dass das ist, was ich tun soll.
Antwort1
Grep verfügt über einige Flags, beispielsweise -A
für die Anzeige der Zahlenreihe nach der Übereinstimmung und -B
für die Anzeige der Zahlenreihen vor der Übereinstimmung. Beide erwarten eine Zahl, gefolgt vom Flag.
Außerdem kann die Flagge -C
verwendet werden, die beides kombiniert, um Ihnen sowohl davor als auch danach eine Zeile zu geben.
Zum Beispiel,
grep -A 1 -B 1 'Candy Land' file
oder
grep -C 1 'Candy Land' file