Linux 上でテキストファイルのエンコードを指定して開く方法アレコレ
Linux 上でサーバログを見ようとしたら、なぜかエンコード方式が EUC-JP だったらしく、文字化けしてしまった。
そこで、文字コードを指定してテキストファイルを開く方法を3つ紹介する。
Vim で開いたファイルのエンコードを後から変える
Vim でファイルを開いたら文字化けしていた、そんな時は以下のように Vim コマンドを打つとその場でエンコード方式を変更できる。
:e ++enc=euc-jp
これでファイルを EUC-JP 形式で表示できる。
ターミナル自体のエンコードを変える
コンソールで以下を直接打つ。
LANG="ja_JP.euc-JP"
本来は /etc/sysconfig/i18n
などに記載されているロケールの設定だが、コンソール上で書き換えてしまうことで一時的にエンコーディングを変更できる。
これでエンコーディングを変更したあとにファイルを開けば、文字化けせずに表示できる。
Tail -f
でログを見る時にエンコードを変える
大抵の Linux 環境には nkf
という文字コードを変換するコマンドがあるはずなので、これをパイプで繋げて UTF-8 に対応させて出力させれば良い。
tail -f HOGE.log | nkf -u -w
nkf -u
は出力をバッファしないオプション。
- 参考 : sjisで吐かれるログファイルをutf8なコンソールでtail -fする方… - 人力検索はてな
- 参考 : tail -f でログファイルを出力するときに、文字コードを変換する方法: RAXUS BLOG ラクサス ブログ
- 参考 : nkf コマンド | コマンドの使い方(Linux) | hydroculのメモ
そういえば tail -f
じゃなくて tailf
というコマンドもあるのね。そして情強は less +F
を使うんだとか…?
- 参考 : tailf - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
- 参考 : tail -fやtailfを使うのはやめてless +Fを使おう - Qiita
- 参考 : 「tail -f」を使うのは情弱、情強は「less +F」を使う
以上。コマンドラインでアレコレやれるの良いね~