web-dev-qa-db-ja.com

マニュアルページの全文検索

aproposは、マニュアルページの名前と説明を検索するのに最適です。マニュアルページの内容全体を検索するための同様のコマンドはありますか?

12
user4518

コマンドmanmanを使用すると、2つのオプションがあることがわかります。

   -k     Equivalent to apropos.

   -K     Search  for  the  specified  string in *all* man pages. Warning:
          this is probably very slow!  It  helps  to  specify  a  section.
          (Just  to  give  a  rough idea, on my machine this takes about a
          minute per 500 man pages.)

これはRHEL5システム上にあります

13
user5600

これはおそらく遅いです。しかし、私はNetBSD用のGoogle Summer of Codeプロジェクトを完了したばかりで、私の仕事はまさにこれでした。マニュアルページの全文検索を実装します。

コードはここにあります: https://github.com/abhinav-upadhyay/apropos_replacement

現時点では、これは* BSD(正確にはNetBSDですが、若干の調整を加えた他のBSDで動作するはずです)システムのみを対象としていますが、コードの記述中にいくつかの仮定が行われ、修正するLinuxマシンがありません。 Linuxで作業するためにこれを移植してください。

man-k.org に利用可能なWebインターフェイスがあります。

2

あなたのための2つのオプション。まず、次のスクリプトを試すことができます。

#!/bin/bash
for MANFILE in /usr/share/man/man?/*
do
    found=`zcat $MANFILE | grep -c "$1"`
    if [ $found -gt 0 ]; then
        echo "------ Found in $MANFILE"
        man -P cat $MANFILE | grep --color=auto "$1"
    fi
done

searchman.shなどとして保存し、オプションで実行可能にして、$PATHのどこかに貼り付けます。 sh searchman.sh <query>を実行するだけです。 (注:これをすぐにまとめました。テストしたところ、すべて問題ないように見えますが、あちこちで調整する必要があるかもしれません。)

次に、特にUbuntuを使用している場合は、 http://manpages.ubuntu.com/ -を使用できます。フルテキスト検索オプションが多数あります。

1
simon