Hallo Leute,
ich will gern den Inhalt einer Datei einlesen und ausgeben, dass mach ich mit:
while read line
do
echo $line
done < $file
hab nun folgendes Problem: die letzte Zeile wird nicht ausgegeben!
Was mach ich FALSCH?!?!
MfG
Christoph
Druckbare Version
Hallo Leute,
ich will gern den Inhalt einer Datei einlesen und ausgeben, dass mach ich mit:
while read line
do
echo $line
done < $file
hab nun folgendes Problem: die letzte Zeile wird nicht ausgegeben!
Was mach ich FALSCH?!?!
MfG
Christoph
Die letzte Zeile endet nicht mit einem Zeilenwechsel. Eigentlich nichts besonderes, aber read gibt bei der letzten Zeile immer 0 zurück. Das kann man so umgehen:
"$file" statt $file - falls der Dateiname Leerzeichen enthält.Code:while read line || [ "$line" != "" ]
do
echo $line
done < "$file"
Kennt jemand eine einfachere Lösung?
Danke! Funktioniert einwandfrei! :)
Bitte auch immer echo "$line", sonst werden mehrere aufeinanderfolgende Leerzeichen zu einem.
Ich weiß nicht, ob das einfacher ist:
Also erst den Input Field Separator auf ausschließlich Zeilenumbruch stellen, dann per for-Schleife einlesen.Code:export IFS='
'
for i in `cat "$file"`; do echo "$i"; done
Jan
P.S.: Wenn in der Schleife nicht noch was Spannendes passiert, dann wäre natürlichdie einfachste Variante :rolleyes:Code:cat "$file"