Mám soubor s názvem /tmp/urlFile
kde každý řádek představuje url. Snažím se číst ze souboru následovně:
cat "/tmp/urlFile" | while read url
do
echo $url
done
Pokud poslední řádek nekončí znakem nového řádku, tento řádek se nepřečte. Zajímalo by mě proč?
Je možné číst všechny řádky, bez ohledu na to, zda jsou ukončeny novým řádkem nebo ne?
Přijatá odpověď:
Udělali byste:
while IFS= read -r url || [ -n "$url" ]; do
printf '%sn' "$url"
done < url.list
(ve skutečnosti tato smyčka přidá zpět chybějící nový řádek na posledním (ne)řádku).
- Proč je používání shellové smyčky ke zpracování textu považováno za špatný postup?
- Rozumíte „IFS=read -r line“?
- Proč je printf lepší než echo?