logo hsb.horse
← スニペット一覧に戻る

Snippets

man ページをテキストファイルに保存

macOS/Linux で man コマンドの出力をファイルに保存する方法。col -b で制御文字を除去して可読なテキストを作成。

公開日: 更新日:

man コマンドの出力をファイルに保存して、エディタで読んだり共有したい時がある。単純にリダイレクトすると制御文字が混入するため、適切な後処理が必要だ。

col -b を使う

Terminal window
man <コマンド名> | col -b > <ファイル名>.txt

使用例

Terminal window
man ls | col -b > ls_manual.txt

これで普通のテキストエディタで開いても文字化けしないプレーンテキストになる。

なぜ普通のリダイレクトはダメか

Terminal window
man ls > ls_bad.txt

上記のように保存すると、man が装飾(太字や下線)に使っているバックスペースなどの制御文字(^H など)がそのままファイルに出力されてしまう。less 以外のエディタで開くと非常に読みづらい。

col -b はこれをフィルタリングして、見た目通りのテキストのみを残してくれる。

PDF として保存

印刷用などで PDF が欲しい場合は PostScript を経由する。

macOS

Terminal window
man -t ls | pstopdf -i -o ls_manual.pdf

Linux

Terminal window
man -t ls > ls.ps
ps2pdf ls.ps ls_manual.pdf

-t オプションで PostScript 形式で出力し、それを PDF に変換している。

オプション一覧

方法コマンド用途
プレーンテキストman …col -b
PDFman -t …pstopdf
HTMLman2htmlブラウザ表示

個人的にはプレーンテキストが最も使い勝手が良い。検索や加工が簡単にできる。