Wer hat schon zu viel Zeit? Und irgendwas zu optimieren gibt's doch immer:
Das Denken übernehmen die Scripte nicht, aber sie sind dabei sehr behilflich.
Neulich musste ich für die Umstellung eines Mailsystems ca. 3.300 Aliase umschreiben. Da diese Aliase aus mehreren Quellen stammen sollte das ganze auch automatisch und jederzeit wiederholbar sein. Ich kam irgendwann an den Punkt, an dem ich eine Datei lesen und mit jeder Zeile etwas tun musste.
Der Klassiker in Bash ist einfach:
for LINE in $(cat /pfad/zur/datei)
do
echo $LINE
done
Dazu gibt es jedoch eine meist bessere Alternative:
while read LINE
do
echo $LINE
done < /pfad/zur/datei
Variante 2 nutzt das read Kommando unter Linux und liest die Datei wirkich zeilenweise, wogegen Version 1 wortweise liest.
Beispiel:
Quelldatei
zeile eins
zeile zwei
Ergebnis der Variante 1:
zeile
eins
zeile
zwei
Ergebnis der Variante 2:
zeile eins
zeile zwei
Mir gefällt mir die erste Variante durchaus besser von der Form, aber sie verhält sich eventuell nicht, wie man es erwarten würde.