Q. man の文書をテキスト化するにはどのようにすれば良いのでしょうか。 A. 単純に % man man > man.txt として plain text ファイルを作成すると、cat や more、less などで 見る分にはよいのですが、vi や emacs などのエディタで見ようとすると LS(1) FreeBSD General Commands Manual LS(1) N^HNA^HAM^HME^HE l^Hls^Hs - list directory contents S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS のように、太字や下線の部分がおかしくなってしまいます。これは NAME の太字を表現するのに、 N(^Hで一文字戻る)NA(^Hで一文字戻る)AM(^Hで一文字戻る)ME(^Hで一文字戻る)E のように、コントロールコード ^H を使っているからです。同様に 下線付きの `ABC' は A^H_B^H_C^H_ となります。 これを plain text にするには、以下のような方法があります。 (1) colcrt(1) を使用する % man man | colcrt > man.txt これが一番簡単でしょう。 % jman jman | colcrt > jman.txt jman も OK です。 (2) col(1) を使用する。 % man man | col -b > man.txt man ならよいのですが、日本語に対応していないため、jman では うまくいきません。 FreeBSD(98) の col は、3.5.1 以前は日本語が通るようにパッチがあてられて いましたが、4.0 以降は日本語化パッチが配布物の中に含まれています。 <URL:http://www.jp.freebsd.org/pc98/releases/4.0R/Relnot98.txt> (3) colcrt や col の行なっていることを sed や perl で行なうと % jman jman | sed 's/.^H//g; s/.^H//g' > man.txt % jman jman | perl -pe 's/..\x08\x08|.\x08//g' > man.txt のようになります。なお、^H は Ctrl-v BackSpace や Ctrl-v h として 入力します。 (4) emacs (mule) 上で man を見て、ファイルに保存する。 M-x man [ENTER] マニュアル名 [ENTER] とすると、emacs 上にマニュアルが表示されます。それをファイル名を 指定して書き出せばいいでしょう。~/.emacs に (defvar manual-program "jman") としておくと、日本語マニュアルが表示されます。 おまけ。 (5) plain text ではありませんが、 % gzcat /usr/share/man/man1/ls.1.gz | groff -man > ls.ps とすると、マニュアルを Postscript 形式に変換できます。日本語マニュアルは ja-groff (/usr/local/bin/groff にインストールされる) を使って % gzcat /usr/share/man/man1/ls.1.gz | /usr/local/bin/groff -man > ls.ps とします。そのまま Postscript プリンタに出力したり、gs コマンド (ghostscript に含まれています) で見ることができます。
グループ名: man