Grep ist wahrscheinlich eine bessere Lösung, wenn Sie den Kontextwechsel verwenden -B
:
grep -B999 -m 1 "^#" file.c
oder mit langen Optionsnamen:
grep --before-context 999 --max-count 1 "^#" file.c
Dies findet das Muster "^#"
(ein '#', das am Anfang der Zeile verankert ist) und zeigt bis zu 999 Zeilen davor, wobei "^ #" maximal 1 gefunden werden kann.
Finden Sie also im Grunde das erste "^ #", zeigen Sie bis zu 999 Zeilen davor und beenden Sie den Vorgang. Möglicherweise möchten Sie durch den Kopf pfeifen, um das gefundene "^ #" zu entfernen:
grep -B999 -m1 "^#" file.c | head -n -1
Was wird die letzte Zeile abschneiden.
Ich bin damit einverstanden, dass -B999
dies ein bisschen übertrieben sein könnte, aber ich würde es hassen, alles, was Sie später in Ihrer Karriere schreiben, abzuschneiden, nachdem Sie wortreich geworden sind. Passen Sie dies natürlich entsprechend an.