grep mit mehr Zeilen

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: , ,

This entry was posted in Computer, MMMDM Continued, OS X. Bookmark the permalink.

2 Responses to grep mit mehr Zeilen

  1. Deep-Thought says:

    Geil.

  2. Erik says:

    @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. ;-)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>