テキストファイルとは、いくつかの行の集合である。そして、行とは改行コードで区切られるまでの、一連のテキストデータの連続である。 ところで、すべての行の末尾は改行コードで終わるかと言えば、そうとも限らない。改行コードが1つもないテキストファイルも作れるし、最後の行だけ改行コードなしにすることもできる。POSIX基準では、すべての行は改行コードで終わると定義されているようだが、現実のテキストファイルは必ずしもそうなっていないのだ。 ちゃんと改行コードで終わっているか、終わっていないかの違いによって、処理環境によっては思わぬ不具合を誘発してしまうことがある。どちらかに統一する技を覚えておきたい。 改行コードで終わらない場合の不具合 readコマンドは、改行コードで終わらない行を読み取ってくれない...。 $ echo -ne 'ABC\nDEF\n' | while read LINE; do