Ich habe eine Datei namens /tmp/urlFile
wobei jede Zeile eine URL darstellt. Ich versuche, aus der Datei wie folgt zu lesen:
cat "/tmp/urlFile" | while read url
do
echo $url
done
Wenn die letzte Zeile nicht mit einem Zeilenumbruchzeichen endet, wird diese Zeile nicht gelesen. Ich habe mich gefragt, warum?
Ist es möglich, alle Zeilen zu lesen, egal ob sie mit einer neuen Zeile beendet werden oder nicht?
Akzeptierte Antwort:
Sie würden Folgendes tun:
while IFS= read -r url || [ -n "$url" ]; do
printf '%sn' "$url"
done < url.list
(effektiv fügt diese Schleife den fehlenden Zeilenumbruch in der letzten (Nicht-)Zeile hinzu).
- Warum wird die Verwendung einer Shell-Schleife zum Verarbeiten von Text als schlechte Praxis angesehen?
- Verstehen Sie „IFS=read -r line“?
- Warum ist printf besser als echo?