2012年6月23日土曜日

イケてない標準出力の応急処置

Linuxサーバへのアクセスに、WindowsだとTeraTerm、
Macだとターミナルを使う機会が多い拙者だが、
他人が作成したモジュールやシェルをコマンドライン実行した際、
イケてない標準出力に遭遇する場合が稀にある。
最近物忘れが激しいので、個人的によくやる対応方法をメモ。

-----------------------------------------------------------------------
・標準出力をファイルに書き出したい
    ⇒コマンドの末尾に' > [ファイル名] 'または、' >> [ファイル名] 'でリダイレクト。

・標準出力が邪魔
    ⇒コマンドの末尾に' > /dev/null 'を追加して、捨てる。

・標準エラー出力も邪魔
    ⇒コマンドの末尾に' > /dev/null 2>&1 'を追加して、捨てる。

・標準出力を表示させつつ、ファイルに書き出したい
    ⇒コマンドの末尾に' | tee -a [ファイル名] 'を追加。
        ※-aを付けておくと、ファイルの末尾に追記。

・標準出力が文字化けしてる
    ⇒コマンドの末尾に' | nkf [-オプション] 'を追加して文字コード変換。

・標準出力の改行が多すぎ
    ⇒コマンドの末尾に' | xargs echo -n 'を追加して、改行を削除。

・特定の文字が入った行を非表示
    ⇒コマンドの末尾に' | grep -v [特定の文字] 'を追加。

・特定の文字を非表示
    ⇒コマンドの末尾に' | sed -e s/[削除したい文字]//g 'を追加。

・標準出力に'/'が入っててうまく動かないんだけど…
    ⇒区切り文字を他の記号に変える。例えば' | sed -e s@[削除したい文字]@@g '
-----------------------------------------------------------------------

パイプラインは、複数の組み合わせもOK。
これで、大体何とかなるかな…