我正在 bash 中尝试 grep 命令,并遇到了这个命令,但我不太理解它的行为:
grep -E '^[[:space:]]*([[:alnum:]].)+' f3
这里,f3包含
man bash
的内容。该命令只是从每行的开头获取一些随机数量的单词。我的假设是,在遇到非字母数字字符之前,它实际上会在行中获取一些单词,而且我不明白为什么这种行为不是这样。
你的正则表达式可以通过它的各个部分来解释:
^
行首[[:space:]]*
零个或多个空格字符(因此空格也无效)([[:alnum:]].)+
字母数字字符后跟 任何 字符,至少重复一次。可能的匹配:“ab”、“a1”、“abba”、“a!1#”。grep
将打印整行。如果您只想打印该行的匹配部分,请指定 -o
或 --only-matching
。