24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

160 2 <strong>UNIX</strong><br />

Seite http://www.ciw.uni-karlsruhe.de/technik.html, Aktualisierungen<br />

und die Rückkopplung vom Leser zum Autor s<strong>in</strong>d im Netz e<strong>in</strong>e Kle<strong>in</strong>igkeit.<br />

Das ganze technische Drumherum um e<strong>in</strong> Dokument – Text oder Manuskript<br />

trifft ja nicht ganz zu – wird als Document Eng<strong>in</strong>eer<strong>in</strong>g bezeichnet.<br />

GOETHES ECKERMANN wäre heute e<strong>in</strong> Dokumenten-Ingenieur.<br />

2.7.16 Weitere Werkzeuge (grep, diff, sort usw.)<br />

Für e<strong>in</strong>zelne Aufgaben der Textverarbeitung gibt es Spezialwerkzeuge <strong>in</strong> UN-<br />

IX. Häufig gebraucht werden grep(1) (= global regular expression pr<strong>in</strong>t),<br />

egrep(1) und fgrep(1). Sie durchsuchen Textfiles nach Zeichenmustern.<br />

E<strong>in</strong> e<strong>in</strong>facher Fall: suche im File telefon nach e<strong>in</strong>er Zeile, die das Zeichenmuster<br />

alex enthält. Das Kommando lautet<br />

grep -i alex telefon<br />

Die Option -i weist grep(1) an, ke<strong>in</strong>en Unterschied zwischen Groß- und<br />

Kle<strong>in</strong>buchstaben zu machen. Die gleiche Suche leistet auch e<strong>in</strong> Editor wie<br />

der vi(1), nur ist der e<strong>in</strong> zu umfangreiches Werkzeug für diesen Zweck. Unter<br />

MS-DOS heißt das entsprechende Werkzeug f<strong>in</strong>d, das nicht mit <strong>UNIX</strong>f<strong>in</strong>d(1)<br />

verwechselt werden darf.<br />

Für unsere Anlage haben wir mit dem grep(1) e<strong>in</strong> etwas leistungsfähigeres<br />

Shellscript namens it (= <strong>in</strong>fo Telefon) geschrieben, das erst <strong>in</strong> e<strong>in</strong>em<br />

privaten, dann <strong>in</strong> e<strong>in</strong>em öffentlichen Telefonverzeichnis sucht:<br />

grep -s $* $HOME/<strong>in</strong>form/telefon /mnt/<strong>in</strong>form/telefon |<br />

sed -e "s/ˆ\/[ˆ:]*://g"<br />

Programm 2.26 : Shellscript zum Suchen <strong>in</strong> e<strong>in</strong>em Telefonverzeichnis<br />

Um im File fluids nach dem Str<strong>in</strong>g dunkles Hefe-Weizen zu suchen,<br />

auch mit großem Anfangsbuchstaben und <strong>in</strong> allen Beugungsformen, gibt es<br />

folgende Wege:<br />

grep unkle fluids | grep Hefe-Weiz<br />

grep ’[Dd]unkle[mns]* Hefe-Weizen’ fluids<br />

Der erste Weg könnte auch seltsame Komb<strong>in</strong>ationen liefern, die unwahrsche<strong>in</strong>lich<br />

s<strong>in</strong>d, erfordert aber ke<strong>in</strong>e vertieften Kenntnisse von regulären Ausdrücken.<br />

Der zweite Weg macht von letzteren Gebrauch, engt die Auswahl e<strong>in</strong><br />

und wäre <strong>in</strong> unbeaufsichtigt laufenden Shellskripts vorzuziehen.<br />

grep(1) ist nicht rekursiv, das heißt es geht nicht <strong>in</strong> Unterverzeichnisse<br />

h<strong>in</strong>e<strong>in</strong>. Nimmt man f<strong>in</strong>d(1) zur Hilfe, das rekursiv arbeitet, so läßt sich<br />

auch rekursiv greppen:<br />

f<strong>in</strong>d . -pr<strong>in</strong>t | xargs grep suchstr<strong>in</strong>g<br />

Das Kommando xargs(1) hängt die Ausgabe von f<strong>in</strong>d(1) an die Argumentliste<br />

von grep(1) an und führt es aus.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!