改行コードの違い

改行コードの違い

3文字の文字列が複数行あるファイルを読み込んでそれぞれの文字列に対して処理をするスクリプトをかきました。
とても単純なタスク。こんなの。

#/bin/bash
for i in $(cat ./hoge.txt)
do
    echo $i →ここでホントはもっと処理が入る。
done

動かすと、上記のようなechoではちゃんと動作する。
で本来はこのスクリプトでそれぞれの行に対応するもっとカラムが多いファイルを作るんです。
こんなデータ

aaa hogehoge fugafuga 
bbb mogamoga piyopiyo
ccc donbarako donbrako

でもこれがちゃんと出来ない。なんでた。
上記のスクリプトのechoのところを、作成した目的ファイルに対してgrepをかけてみてもヒットしなかったりする。

grep $i ./objectfile

うーんなんでだろ。echoじゃちゃんとでてくるんだけど悩むこと1時間。
結局は最初の複数行あるファイルの改行コードが期待していたものとは違ったことが原因でした。
nkfで変換して解決。

# nkf -Lu ./hoge.txt > hogehoge.txt

めんどうな。