我想搜索包含所有单词“foo”、“bar”和“baz”的手册页。
如果可能,我想搜索所有手册页的所有文本(不仅仅是名称和描述)。
我猜是这样的
man -K foo AND bar AND baz
Run Code Online (Sandbox Code Playgroud)
我实现了一个脚本,正是这样做的。
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