man コマンドの出力をファイルに保存して、エディタで読んだり共有したい時がある。単純にリダイレクトすると制御文字が混入するため、適切な後処理が必要だ。
col -b を使う
man <コマンド名> | col -b > <ファイル名>.txt使用例
man ls | col -b > ls_manual.txtこれで普通のテキストエディタで開いても文字化けしないプレーンテキストになる。
なぜ普通のリダイレクトはダメか
man ls > ls_bad.txt上記のように保存すると、man が装飾(太字や下線)に使っているバックスペースなどの制御文字(^H など)がそのままファイルに出力されてしまう。less 以外のエディタで開くと非常に読みづらい。
col -b はこれをフィルタリングして、見た目通りのテキストのみを残してくれる。
PDF として保存
印刷用などで PDF が欲しい場合は PostScript を経由する。
macOS
man -t ls | pstopdf -i -o ls_manual.pdfLinux
man -t ls > ls.psps2pdf ls.ps ls_manual.pdf-t オプションで PostScript 形式で出力し、それを PDF に変換している。
オプション一覧
| 方法 | コマンド | 用途 |
|---|---|---|
| プレーンテキスト | man … | col -b |
| man -t … | pstopdf | |
| HTML | man2html | ブラウザ表示 |
個人的にはプレーンテキストが最も使い勝手が良い。検索や加工が簡単にできる。
hsb.horse