09.04.2014 Aufrufe

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

232 A Musterlösungen<br />

7.1 Der reguläre Ausdruck r+ ist nur eine Abkürzung für rr*, auf + könnte man<br />

also verzichten. Anders sieht es bei ? aus, dafür gibt es keinen Ersatz, jedenfalls<br />

wenn man (wie bei grep vs. egrep) annehmen muss, dass man statt r? auch nicht<br />

\(\|r\) sagen kann (GNU-grep unterstützt das synonyme r{,1} – siehe Tabelle 7.1<br />

–, aber die grep-Implementierungen herkömmlicher Unixe kennen das nicht).<br />

7.2 Dafür brauchen Sie eine Musterlösung? Machen Sie sich nicht lächerlich. –<br />

Naja … weil Sie’s sind …<br />

egrep '\' frosch.txt<br />

7.3 Eine Möglichkeit wäre<br />

grep :/bin/bash$ /etc/passwd<br />

7.4 Wir suchen nach Wörtern, die mit einer (möglicherweise leeren) Folge von<br />

Konsonanten anfangen, dann kommt ein »a«, dann wieder möglicherweise Konsonanten,<br />

dann ein »e« und so weiter. Wir müssen vor allem aufpassen, dass uns<br />

keine Vokale »durchrutschen«. Der resultierende reguläre Ausdruck ist relativ unappetitlich,<br />

darum erlauben wir uns eine kleine Schreibvereinfachung:<br />

$ k='[^aeiou]*'<br />

$ grep -i ^${k}a${k}e${k}i${k}o${k}u${k}$ /usr/share/dict/words<br />

abstemious<br />

abstemiously<br />

abstentious<br />

acheilous<br />

acheirous<br />

acleistous<br />

affectious<br />

annelidous<br />

arsenious<br />

arterious<br />

bacterious<br />

caesious<br />

facetious<br />

facetiously<br />

fracedinous<br />

majestious<br />

(Nachschlagen dürfen Sie die Wörter selber.)<br />

7.5 Probieren Sie mal<br />

egrep '(\).*\' frosch.txt<br />

Wir brauchen egrep für den Rückbezug. <strong>Die</strong> Wortklammern müssen auch um den<br />

Rückbezug herum angegeben werden (probieren Sie es mal ohne!). Umlaute werden<br />

hier der besseren Übersicht wegen ignoriert.<br />

8.1 Eine (wahrscheinliche) Möglichkeit ist, dass das Programm ls nach etwa<br />

dem folgenden Schema abläuft:<br />

Lies die Verzeichnisdaten in Liste l ein;<br />

if (Option -U nicht angegeben) {<br />

textrmSortiere die Elemente von l;<br />

}<br />

Gib l auf die Standardausgabe aus;<br />

Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!