J'ai un fichier nommé /tmp/urlFile
où chaque ligne représente une URL. J'essaie de lire le fichier comme suit :
cat "/tmp/urlFile" | while read url
do
echo $url
done
Si la dernière ligne ne se termine pas par un caractère de saut de ligne, cette ligne ne sera pas lue. Je me demandais pourquoi ?
Est-il possible de lire toutes les lignes, qu'elles se terminent ou non par une nouvelle ligne ?
Réponse acceptée :
Vous feriez :
while IFS= read -r url || [ -n "$url" ]; do
printf '%sn' "$url"
done < url.list
(en fait, cette boucle rajoute la nouvelle ligne manquante sur la dernière (non-) ligne).
- Pourquoi l'utilisation d'une boucle shell pour traiter du texte est-elle considérée comme une mauvaise pratique ?
- Comprendre "IFS=read -r line" ?
- Pourquoi printf est-il meilleur que echo ?