Digitra

LINUXサーバの設定やプログラムのことなどを中心にブログを書いています。

tailコマンドで16進数エスケープされた日本語をターミナルで表示する

Apacheデバッグログを出すときに日本語が、16進数エスケープされた状態になるので、どうにか日本語が読める状態にならないかなと思っていましたが、perlをパイプで使うことでtailしながら日本語がしっかり表示できました。

 

tail -f [logファイル] | perl -nle 's/\?\\([a-f\d]{3})/chr($1)/ieg;s/\\x([a-f\d]{2})/pack("C", hex($1))/ieg;print $_;'

 

おそらく、nkf -wを咬ませても、うまくいくとは思いますが、それだけのために、調査したいサーバにnkfインストールするのは面倒なので、これがいいかなと。