Search

搜尋包含所有單詞 ‘foo’ ‘bar’ 和 ‘baz’ 的手冊頁

  • March 16, 2018

我想搜尋包含所有單詞“foo”、“bar”和“baz”的手冊頁。

如果可能的話,我想搜尋所有手冊頁的所有文本(不僅僅是名稱和描述)。

我猜是這樣的

man -K foo AND bar AND baz

我實現了一個正是這樣做的腳本。

if [ $# -eq 0 ]; then
 PATTERNS=(NAME AUTHOR EXAMPLES FILES)
else
 PATTERNS=( "$@" )
fi

[ ${#PATTERNS[@]} -lt 1 ] && echo "Needs at least 1 pattern to search for" && exit 1

for i in $(find /usr/share/man/ -type f); do
 TMPOUT=$(zgrep -l "${PATTERNS[0]}" "$i")
 [ -z "$TMPOUT" ] && continue

 for c in `seq 1 $((${#PATTERNS[@]}-1))`; do
   TMPOUT=$(echo "$TMPOUT" | xargs zgrep -l "${PATTERNS[$c]}")
   [ -z "$TMPOUT" ] && break
 done

 if [ ! -z "$TMPOUT" ]; then
   #echo "$TMPOUT" # Prints the whole path
   MANNAME="$(basename "$TMPOUT")"
   man "${MANNAME%%.*}"
 fi
done

估計是浪費時間:(

編輯:好像

man -K expr1 expr2 expr3

沒用?

編輯:您現在可以通過腳本傳遞您的搜尋字詞./script foo bar

引用自:https://unix.stackexchange.com/questions/137237