假设我想在不滚动的情况下了解命令-i
中 switch的用法grep
。我需要该命令的规范,或者至少先看到屏幕显示该命令。那么怎么做呢?正如您所说,一般来说,不仅仅是grep -i
。
答案1
在终端上输入以下命令:
man grep
然后输入斜线字符/,并输入搜索内容,例如-i
,后跟Enter。这会将光标定位在搜索字符串的第一个匹配项处。按 可n将光标移动到下一个匹配项。按Shift+n可将光标移动到上一个匹配项。
答案2
尝试这个简单的sed
命令,
$ man grep | sed -n '/-i, --ignore-case/,+2p'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
解释:
sed -n '/-i, --ignore-case/,+2p'
|<-Search pattern->|
它将打印包含搜索模式的行以及位于搜索模式行正下方的两行。
或者
您可以简单地在搜索模式中给出标志,如下所示。
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *i, -/,+3p'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *V, -/,+3p'
-V, --version
Print the version number of grep to the standard output stream.
This version number should be included in all bug reports (see
below).
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *F, -/,+3p'
-F, --fixed-strings
Interpret PATTERN as a list of fixed strings, separated by
newlines, any of which is to be matched. (-F is specified by
POSIX.)
avinash@avinash-Lenovo-IdeaPad-Z500:~$ man grep | sed -n '/ *G, -/,+3p'
-G, --basic-regexp
Interpret PATTERN as a basic regular expression (BRE, see
below). This is the default.
您可以将此脚本添加到您的.bashrc
($HOME/.bashrc
)以便快速访问:
mangrep(){
USAGE="mangrep <application> <switch>"
if [[ "$#" -ne "2" ]]
then
echo "Usage: $USAGE"
else
man "$1" | sed -n "/ *"$2", -/,+3p"
fi
}
答案3
虽然最简单的方法是按照/@girardengo 的建议进行搜索,但您也可以使用我认为更简单的grep
方法sed
:
$ man grep | grep -A 1 '^ *-i'
-i, --ignore-case
Ignore case distinctions in both the PATTERN and the input
files. (-i is specified by POSIX.)
意思-A N
是“打印匹配行之后的 N 行。这只是一个获取接下来几行的技巧,类似于阿维纳什 sed
方法。
答案4
我知道的最有效的方法是搜索手册页-i
(这个网站似乎无法呈现我的代码。我的意思是<space><space><space>-i
)。也就是 3 个空格(您可能需要更多/更少的空格)后跟您要查找的标志。根据我的经验,它几乎总是有效的,如果它不起作用,您可以更改为它的某个变体。
这样做之所以有效,是因为标志的实际文档通常是缩进的。这样可以避免在其他部分找到对标志的其他提及,因为它们前面通常只有一个空格。