web-dev-qa-db-ja.com

ターミナルでマニュアルの生テキスト出力を取得するにはどうすればよいですか

ターミナルでマニュアルの生テキスト出力を取得するにはどうすればよいですか?

「少ない」タイプの画面を表示せずにマニュアルを作成したい。

8
user123456

-Pオプションを使用して、ページャーをcatに変更できます。

man -P cat command

ここで、commandは、読みたいmanページの対象コマンドです。

また、manページをファイルにリダイレクトして、ファイルを開いて読むこともできます。

man command > file
12
edwinksl

圧縮された(非圧縮も可能)manファイルを直接読み取ることができ、それぞれのセクションに対応するディレクトリの/usr/share/man/の下にあります。

たとえば、mancatページの生のコンテンツを取得するには、/usr/share/man/man1/cat.1.gzを読み取る必要があります。

zcat /usr/share/man/man1/cat.1.gz 

同様に、man 2 forkの場合:

zcat /usr/share/man/man2/fork.2.gz
4
heemayl

テキスト形式が必要な場合、および文書内のいたるところにあるこれらの厄介な「ページ区切り文字」が望ましくない場合、方法は次のとおりです。

zcat /usr/share/man/en/man1/man.1.gz | groff -m man -rcR=1 -T ascii -

/usr/share/man/en/man1/man.1.gzを探しているマンページに変更します。これはmanのマニュアルページです(man manと同じですが、ページ区切りなし)

あなたのために同じことをするカスタムマンコマンドを行う方法がありますが、私は今それをテストすることはできません...

3
Olivier Dulac

manの出力のリダイレクト(他の回答で示唆されているように)は期待どおりに動作するはずです。 manは、その出力がttyではないことを検出するため、そうでなければitalicsboldおよびその他のフォーマット。

より一般的な答えとして、col -bを使用して、コマンドの出力からそのような文字を取り除くことができます。すべてのコマンドがmanほどスマートではなく、出力がリダイレクトされていることを検出しない場合があります。言い換えると、次のようなことができたはずです。

man command | col -b > somefile
1
Soren L. Hansen