FC2ブログ
2011年05月 / 04月≪ 12345678910111213141516171819202122232425262728293031≫06月

2011.05.07 (Sat)

【LINUX】 異なる文字コードのファイルに grep を実行 【grep】

grep コマンドはファイルの中身をチェックし、引数の文字列に該当する部分があるかどうかチェックするコマンド。
通常、

grep ほげ some_file


とすると some_file 内の "ほげ" という文字列がある部分が出力される。

しかし、例えばシステムが UTF-8 の環境なのに、文字列検索対象のファイルが EUC-JP だったりすると、上手く見つけてくれない。
そこで、ググったところ以下の対処法を確認。

grep コマンドには -f という、パターン(上の例でいう "ほげ" )をファイルに指定できるオプションがある。
このファイルを検索対象の文字コードで記述すれば、文字列検索を指定した文字コードで検索することになる。

たとえば、EUC-JP のファイルを対象に検索したい文字列パターンを記述する場合は

echo "ほげ" | nkf -e > pattern.txt
nkf -g pattern.txt
grep -f pattern.txt target_file1 target_file2


といったようにすれば良い。

テーマ : Linux ジャンル : コンピュータ

15:43  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
 | BLOGTOP |