while readで最終行が処理されない【シェルスクリプト】

catコマンドで最終行がある文字が表示されない問題

Windowsで生成したファイルをシェルスクリプトでwhile readを利用して読み込み処理をおこなったが、最終行が処理されない状況でした。

最終行が処理されなかったファイルを確認するとファイルの最終行に改行文字が含まれていないのが原因のようです。最終行に改行文字がないので処理ができなかったみたいです。

ネットで調べると、下記の様の「 while read LINE || [ -n “${LINE}" ]; 」のような感じで処理すれば表示されるようです

また、いちどvimで開いて保存すれば自動的に最終行には改行文字が含まれるので、あまりWindows側で処理せずLinuxのvimでファイルを生成する方法もあります。

最終行に改行文字が含まないファイルを生成するには、WindowsのAtomの様な高性能なテキストエディタやIDE等のソフトでファイルを保存するとそのようなファイルになることがあります

 

スポンサーリンク