搜索包含所有单词“foo”、“bar”和“baz”的手册页

Tom*_*sai 12 man search

我想搜索包含所有单词“foo”、“bar”和“baz”的手册页。

如果可能,我想搜索所有手册页的所有文本(不仅仅是名称和描述)。

我猜是这样的

man -K foo AND bar AND baz
Run Code Online (Sandbox Code Playgroud)

pol*_*lym 5

我实现了一个脚本,正是这样做的。

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
Run Code Online (Sandbox Code Playgroud)

猜猜这是浪费时间:(

编辑:好像

man -K expr1 expr2 expr3
Run Code Online (Sandbox Code Playgroud)

没用?

编辑:您现在可以通过以下方式传递脚本您的搜索词 ./script foo bar

  • 奇怪但^真实^ - 但是投票给*浪费时间*很有趣...... (2认同)