Ho un file chiamato /tmp/urlFile
dove ogni riga rappresenta un URL. Sto cercando di leggere dal file come segue:
cat "/tmp/urlFile" | while read url
do
echo $url
done
Se l'ultima riga non termina con un carattere di nuova riga, quella riga non verrà letta. Mi chiedevo perché?
È possibile leggere tutte le righe, indipendentemente dal fatto che siano terminate con una nuova riga o meno?
Risposta accettata:
Faresti:
while IFS= read -r url || [ -n "$url" ]; do
printf '%sn' "$url"
done < url.list
(in effetti, quel ciclo aggiunge nuovamente la nuova riga mancante sull'ultima riga (non)).
- Perché l'utilizzo di un ciclo di shell per elaborare il testo è considerato una cattiva pratica?
- Capisci "IFS=read -r line"?
- Perché printf è meglio di echo?