”grep”で行の完全一致を見つける

Linux上でファイル操作をしていて、あるファイルの中から別のファイルにある行と一致する行を取り除きたい。
単純に考えると
#grep -v -f hoge.txt gesho.txt
で出来るんだけど、この場合はhoge.txtのとある行を”含む”行が全て取り除かれてしまう。
例えばgesho.txtの中身が
“This is a pen”
“This is a pencil”
の2行だったとして、hoge.txtに
“This is a pen”
があると2行とも取り除かれてしまう。
そこで、行の完全一致のオプション”-x”を付けて
#grep -v -x -f hoge.txt gesho.txt
とすれば解決・・・の筈だったんだけど、実際には一致する行が無いと判断されてしまった。
理由はhoge.txtとgesho.txtで改行コードが異なっていた為orz。
Windows上で扱う関係でgesho.txtはCR+LFでないと困るが、反対にhoge.txtはLFである必要があって統一できない。
さて、どうするかなぁ?(汗)

grepに渡す時だけ”dos2unix”で改行コードを変換して、終わったら元に戻すのが簡単かな?

←クリックしてくれると嬉しいです。

One comment to this article

コメントを残す