パスワードを忘れた? アカウント作成
274812 journal

okkyの日記: man の出力から a^Ha とか _^Hx とかを無くす方法 5

日記 by okky

a^Ha は a という意味。_^Hx は xに下線 という意味。
この手の「強調」を消すオプションだったか方法だったかがあった気がするのだが…前にやったときは20世紀だったこともあってまるっきりやり方を思い出せない。

man ページを man ⇒ groff ⇒ troff と手繰ってみたりもしたがピンとこない。あれ~??

駄目だ、これ以上は調べるより sed のスクリプトを書いたほうが早い…というわけで gnu-sed 用のを書いてしまいました。もしかしたら普通の sed でも動くかもしれませんが、判りません。

#! /usr/bin/sed -f
 
s/\([[:print:]]\)[[:cntrl:]]\1/\1/g
s/_[[:cntrl:]]\([[:print:]]\)/\1/g

おっかしいなぁ…確かになんか手があった気がするんだが…

-------

追記: pager の問題ではない。つまり less の問題ではない。
どうせless とかでは Bold とかでちゃんと出るのだ。それはそれでいい。

私はテキスト全体をコピーし、さらにそれを複数バージョンくっつけて、それぞれの項目がどういう意味で、どういう振る舞いのときに何を注目すればいいのか、というドキュメントを書く、そのためのベースにしたいのだ。sarをExcelシートにする強引なスクリプトが書けたのだが、そのスクリプトを周りに使わせるためのドキュメンテーションは、プログラム自身を書くのの何倍も大変なんだよ。

# だって、sarの出力を Excel にするのに、各計測値の「意味」なんか気にしなくて良いからね。

で、すでにげんなりするほどの項目数の前に、どうしようかと悩んでいるわけだ。「これ、どうやって書いたら楽だろう」
# Word のいうこと気かなさっぷりは昨日さんざん経験した。

この議論は、okky (2487)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
  • by Jadawin (2174) on 2010年11月18日 17時19分 (#1860952) 日記

    colcrtですね。

    man colcrt| colcrt -| more

    で、普通に読める奴が出てくると思います。

    #FreeBSD固有だったらごめんください。

    • by shibuya (17159) on 2010年11月18日 20時39分 (#1861078) 日記
      colcrt(1)はCygwinでも使えますがBuggyですね。'_'だけじゃなく'-'もフィルタされて変なコードに化けてしまってます。
      col(1)もCygwinでは同じ問題があるようです。sed使えってことでしょうかね。非posixな書き方しか知らないよ。
      ^H生打ちの時はその前に^Vを使うのははviだけでなくシェルインタープリタでも事情は一緒。kshほかでモードを変更していなければ。
      親コメント
  • by numa (4467) on 2010年11月18日 17時21分 (#1860953) ホームページ 日記

    col [freebsd.org]というコマンドがありましたが,これのことでしょうか。

    sedコマンドですが,

    s/\([[:print:]]\)[[:cntrl:]]\1/\1/g
    s/_[[:cntrl:]]\([[:print:]]\)/\1/g

    POSIX.2以前のシステムでは,こんな感じでやっていました。

    s/\(.\)^H\1/\1/g
    s/_^H\(.\)/\1/g

    あるいは、面倒くさくなるとこんな感じ:

    s/.^H//g

    ただし、^Hは Control-H を生で入れる(vi ならControl-V Control-H、emacsならControl-Q Control-H)。

  • 標準出力切り替えないままcatで出力すると気がつかないけどファイル出力にリダイレクトしたらこんなはずじゃの罠なのでわりと気になってました。
    Hewlett-Packardみたいにmanpageをオンラインで示していてもうっかりだったりすることもありますよね。
    でもおまじないはみつからなかったのですべて言い訳になってしまいました。
typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...