Archiv verlassen und diese Seite im Standarddesign anzeigen : #!/bin/bash Datei einlesen
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
BLUESCREEN3D
11-09-2007, 14:22
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:
while read line || [ "$line" != "" ]
do
echo $line
done < "$file"
"$file" statt $file - falls der Dateiname Leerzeichen enthält.
Kennt jemand eine einfachere Lösung?
Danke! Funktioniert einwandfrei! :)
...
while read line || [ "$line" != "" ]
do
echo $line
done < "$file""$file" statt $file - falls der Dateiname Leerzeichen enthält.
Kennt jemand eine einfachere Lösung?
Bitte auch immer echo "$line", sonst werden mehrere aufeinanderfolgende Leerzeichen zu einem.
Ich weiß nicht, ob das einfacher ist:
export IFS='
'
for i in `cat "$file"`; do echo "$i"; doneAlso erst den Input Field Separator auf ausschließlich Zeilenumbruch stellen, dann per for-Schleife einlesen.
Jan
P.S.: Wenn in der Schleife nicht noch was Spannendes passiert, dann wäre natürlich
cat "$file" die einfachste Variante :rolleyes:
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.