トラックバックキター!

id:nyomonyomo 様の こちらの記事 (d:id:nyomonyomo:20060707) から参考にされてるー!
めっちゃうれしー!
うひょー!!!
とか心の中では思ってたりしてます。 ( ウザイとか言わないで )


と、いうことでトラックバックもらったからには何か書いてみようと思ったのですが、 id:nyomonyomo 様の d:id:nyomonyomo:20060705 におもしろいコマンドを発見したので、そちらを少し紹介してみようと思います。


先日のシェルスクリプトの記事で、id:otsune 様から man の使い方、もとい Tips をいろいろと教えていただいたのですが、やっぱり man は使い辛い! という紳士淑女な方は沢山いらっしゃると思います。
そこで自分のメモ、例えばこのブログで man を使ってコマンドを紹介したい、なんて時にはまず man を使って調べてみて、それから jpman を使って、更に関連サイト様を紹介するのにぐぐってみる、なんてことをしている方は多いと思います。 ( 私だけかな )


そんな方々に d:id:nyomonyomo:20060705 で紹介されているコマンドです。

man command | col -bx > cat.txt


このコマンドなら調べたいコマンド、この場合は command に関する全ての man を表示してくれます。


と、長々と書きましたが上記の記述はもしかしたら Linux のみかもしれません。
FreeBSD は下記のコマンドは普通に出力されてました。

2006/07/08 追記:上記の記述は間違いです。
詳しくは後述します。

$ man cat > cat.txt


そもそも col ってなに? と思ったので col(1) を見てみました。
下記がそのリンクです。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=col&dir=jpman-6.0.0%2Fman§=0


上記の jpman より関連項目を抜き出したのが下記の記述です。

     col - 入力から逆行送り (reverse line feed) を取り除くフィルタ

     col ユーティリティは、出力が順方向の行送りと半行送りで正しい順序になるよ
     うに逆行送り (と半逆行送り) を取り除き、空白をなるべくタブに置き換えま
     す。これは、 nroff(1) と tbl(1) の出力を処理する場合に便利です。

     col ユーティリティは標準入力を読み込み、標準出力に出力します。

     -b      バックスペースを出力せず、各桁の位置に最後に書かれた文字だけを表
             示します。
     -x      タブのかわりに複数の空白を出力します。

     col が理解できる復帰動作の制御文字とその 10 進値の一覧を以下の表に示しま
     す。

     ESC-7            逆行送り (エスケープ 7)
     ESC-8            半逆行送り (エスケープ 8)
     ESC-9            半行送り (エスケープ 9)
     backspace        一桁戻る (8); 最初の桁では無視されます
     carriage return  (13)
     newline          改行 (10); 復帰動作も同時に行ないます
     shift in         通常の文字セットにシフトします (15)
     shift out        異なる文字セットにシフトします (14)
     space            一桁移動します (32)
     tab              次のタブストップまで移動します (9)
     vertical tab     逆行送り (11)

     認識できないすべての制御文字とエスケープシーケンスは捨てられます。


何を言っているのか分かりません。
多分文字コードとかに関係していると思うんですが・・・。


# もしかしたらビューワーとかの問題?


2006/07/08 追記:id:nyomonyomo 様から コメント をもらいました。
下記がその内容です。

nroffのタイプライター用の装飾用コード(lessとかで強調表示される)が出力されているのを消すためにcolを使います。cat.txtをviで開いて見るとどういうことになっているかわかると思います。


普段意識していないと気付かないことかも・・・その前に vi で開けよって感じですが。 orz
id:nyomonyomo 様、ありがとうございました。
http://www.linux.or.jp/JF/JFdocs/Man-Page.html