Vor einiger Zeit bin ich mit meinem zukünftigen Schwager ins Fachsimpeln über grep geraten. Ein Satz von ihm hat mich animiert die man-Page von grep genauer anzusehen. “Der grep auf der VAX hat die Suchergebnisse im Kontext angezeigt.” Verdammt lang her, dass ich an einer VAX gesessen bin, ausserdem weiss man als Teenager manche Dinge nicht wirklich zu schätzen.
Richtig, dort wurden die Zeilen vor und nach der Fundstelle angezeigt. Also wird bei einer Suche nach “wasauchimmer” in “index.html” nicht nur
<h1>wasauchimmer Kapitel 1</h1>
angezeigt, sondern auch die Zeile davor und danach:
<!--
<h1>wasauchimmer Kapitel 1</h1>
-->
Die zweite Ausgabe erlaubt es Rückschlüsse zu ziehen, warum die fragliche Zeile nicht angezeigt wird, oder?
Und damit sind wir beim Problem, wer schon jahrelang mit einem Programm – vor allem auf der Command-Line – umgeht, hat das trügerische Gefühl, das Programm zu kennen. Andererseits, grep ist nicht gleich grep, das aufgerufene Programm tut nur sein Möglichstes sich so zu verhalten, wie der / die Benutzer(in) es erwartet. In der man-Page von diesem grep
grep --version
grep (GNU grep) 2.5.1
findet sich folgende Option
-C NUM, --context=NUM
Print NUM lines of output context. Places a line containing --
between contiguous groups of matches.
Soll heissen, grep -C 2 zeigt zwei Zeilen vor, und zwei Zeilen nach dem Ergebnis. (Wie viele Zeilen man benötigt, hängt vom persönlichen Coding-Style ab.) Es geht also doch, man muss nur wissen wie.
Technorati Tags: grep, grep show context, found context
Geil.
@Deep-Thought: Wie sagte mein Ausbilder damals, “Du musst nicht alles auswendig wissen, aber Du musst wissen wo Du nachschauen kannst”, er meinte damit die man-pages.