2011.05.19 (Thu)
近況。
2011.05.17 (Tue)
[LINUX] tee コマンドで標準出力とエラー出力をまとめてファイルと画面に表示
ただのメモです。
実行コマンドを単純にパイプで tee に繋ぐだけだと標準出力しか渡せません。
以下の様にすれば、標準出力とエラー出力をパイプすることができ、tee コマンドで標準出力とエラー出力を画面とファイルに出力することができます。
実行コマンドを単純にパイプで tee に繋ぐだけだと標準出力しか渡せません。
以下の様にすれば、標準出力とエラー出力をパイプすることができ、tee コマンドで標準出力とエラー出力を画面とファイルに出力することができます。
$ execute_command |& tee output_file
2011.05.07 (Sat)
【LINUX】 異なる文字コードのファイルに grep を実行 【grep】
grep コマンドはファイルの中身をチェックし、引数の文字列に該当する部分があるかどうかチェックするコマンド。
通常、
とすると some_file 内の "ほげ" という文字列がある部分が出力される。
しかし、例えばシステムが UTF-8 の環境なのに、文字列検索対象のファイルが EUC-JP だったりすると、上手く見つけてくれない。
そこで、ググったところ以下の対処法を確認。
grep コマンドには -f という、パターン(上の例でいう "ほげ" )をファイルに指定できるオプションがある。
このファイルを検索対象の文字コードで記述すれば、文字列検索を指定した文字コードで検索することになる。
たとえば、EUC-JP のファイルを対象に検索したい文字列パターンを記述する場合は
といったようにすれば良い。
通常、
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
といったようにすれば良い。
| BLOGTOP |