/tmp/urlFile
という名前のファイルがあります ここで、各行はURLを表します。次のようにファイルから読み取ろうとしています:
cat "/tmp/urlFile" | while read url
do
echo $url
done
最後の行が改行文字で終わっていない場合、その行は読み取られません。なぜだろうと思っていましたか?
改行で終わっているかどうかに関係なく、すべての行を読み取ることは可能ですか?
承認された回答:
あなたがすること:
while IFS= read -r url || [ -n "$url" ]; do
printf '%sn' "$url"
done < url.list
(事実上、そのループは最後の(非)行に欠落している改行を追加し直します。)
- シェルループを使用してテキストを処理するのはなぜ悪い習慣と見なされるのですか?
- 「IFS=read -rline」を理解しますか?
- printfがechoよりも優れているのはなぜですか?