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.

2.7 Writer’s Workbench 131<br />

Im e<strong>in</strong>zelnen heißt das: von Zeile 1 bis Textende ($) substituiere die Zeichenfolge<br />

kompil durch compil, und zwar nicht nur beim ersten Auftreten <strong>in</strong><br />

der Zeile, sondern global <strong>in</strong> der gesamten Zeile, das heißt hier also im gesamten<br />

Text. Die Zeichenfolgen brauchen nicht gleich lang zu se<strong>in</strong>. Groß- und<br />

Kle<strong>in</strong>buchstaben s<strong>in</strong>d wie immer verschiedene Zeichen, deshalb wird man die<br />

Ersetzung auch noch für große Anfangsbuchstaben durchführen. Der vorliegende<br />

Text ist auf mehrere Files verteilt. Soll e<strong>in</strong>e Ersetzung <strong>in</strong> allen Files<br />

vorgenommen werden, schreibt man e<strong>in</strong> Shellscript korr und ruft es auf:<br />

korr ’s/kompil/compil/g’ *.tex<br />

Die korrigierten Texte f<strong>in</strong>det man <strong>in</strong> den Files *.tex.k wieder, die ursprünglichen<br />

Texte bleiben vorsichtshalber erhalten.<br />

# Shellscript fuer fileuebergreifende Text-Ersetzungen<br />

pr<strong>in</strong>t Start /usr/local/b<strong>in</strong>/korr<br />

sedcom="$1"<br />

shift<br />

files="$*"<br />

for file <strong>in</strong> $files<br />

do<br />

sed -e "$sedcom" $file > "$file".k<br />

done<br />

pr<strong>in</strong>t Ende korr<br />

Programm 2.21 : Shellscript zur Textersetzung <strong>in</strong> mehreren Files<br />

Zum Löschen e<strong>in</strong>er Zeichenfolge substituiert man sie durch nichts:<br />

:1,$ s/(Slang)//g<br />

In dem Textfile wird die Zeichenfolge (Slang) ersatzlos gestrichen. Die<br />

runden Klammern s<strong>in</strong>d <strong>in</strong> regulären Ausdrücken ke<strong>in</strong>e Metazeichen, anders<br />

als <strong>in</strong> der Shell. Mit dem vi-Kommando u wird die gesamte Ersetzung<br />

rückgängig gemacht.<br />

Beim Aufruf des vi(1) zusammen mit dem Namen e<strong>in</strong>es existierenden<br />

Textfiles:<br />

vi textfile<br />

legt er e<strong>in</strong>e Kopie des Files an und arbeitet nur mit der Kopie. Erst das<br />

abschließende write-Kommando – meist <strong>in</strong> der Form :wq für write und quit<br />

– schreibt die Kopie zurück auf den Massenspeicher. Hat man Uns<strong>in</strong>n gemacht,<br />

so quittiert man den Editor ohne zurückzuschreiben, und das Orig<strong>in</strong>al<br />

ist nicht verdorben. Man kann auch die eben editierte Kopie <strong>in</strong> e<strong>in</strong> File<br />

mit e<strong>in</strong>em neuen Namen – gegebenenfalls <strong>in</strong> e<strong>in</strong>em anderen Verzeichnis wie<br />

/tmp – zurückschreiben und so das Orig<strong>in</strong>al unverändert erhalten. Will man

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!