2 Stimmen

bash: Anhängen von Zeilenumbrüchen beim Umleiten von Dateien

So lese ich eine Datei Zeile für Zeile:

while read ROW
do
...
done < file

Ich verwende die andere Syntax nicht

cat file | while read ROW
do
...
done

weil die Pipe eine Subshell erzeugt und ich dadurch die Umgebungsvariablen verliere. Das Problem tritt auf, wenn die Datei nicht mit einem Zeilenumbruch endet: Die letzte Zeile wird nicht gelesen. In der letztgenannten Syntax lässt sich dies leicht lösen, indem nur ein Zeilenumbruch als Echo ausgegeben wird:

(cat file; echo) | while read ROW
do
...
done

Wie kann ich das Gleiche in der früheren Syntax tun, ohne eine Subshell zu öffnen oder eine temporäre Datei zu erstellen (die Liste ist ziemlich groß)?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X