Linux Tips

manページをテキストファイルにすると文字化けしてしまう

北浦訓行
2001/7/5

 manページをリダイレクトでテキストファイルに変換すると、変な文字が挿入されてしまうことがある。

「man ls > ls.txt」というコマンドを実行してls.txtを表示すると、文字の間に「^H」が入ってしまう

 これは、manページを表示する際に、特定の文字を強調する目的で画面の制御コードが挿入されるためだ。つまり、強調表示の制御コードを取り除けば、文字化けのないテキストファイルにすることができる。

manページを表示すると、「名前」や「書式」などの見出しが強調表示される

 強調表示の制御コードを取り除くには、colコマンドを使用する。colコマンドは、逆改行(バックスペース)コードを取り除くためのフィルタプログラムで、標準入力から読み込んだデータを標準出力に書き出す。従って、パイプとリダイレクションを組み合わせて、強調表示の制御コードを取り除けばいいことになる。

 強調表示の制御コードには、バックスペース([Ctrl]+[H])が使われているため、

$ man ls > ls.txt

とすると文字の間に「^H」が入ったのだ。colコマンドには、バックスペースを取り除くための-bというオプションがあるので、以下のようにすれば文字化けのないテキストファイルになる。

$ man ls | col -b > ls.txt

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間