GP9*_*P92 4 grep regular-expression
例如:我有如下文件:
AA ABC-AA-AA
AAA ABC-AA
ABC.AA ABC
AA ABC.A AA
Run Code Online (Sandbox Code Playgroud)
如果我使用grep -w "ABC" file1,我会得到所有的行。
但我应该只得到第三行: ABC.AA ABC
它以.和-作为单词分隔符。但我只需要空格作为单词分隔符。
pet*_*rph 10
来自(GNU)grep(1)手册页:
-w, --word-regexp
仅选择包含构成整个单词的匹配项的那些行。测试是匹配的子字符串必须位于行首或前面是非单词组成字符。同样,它必须位于行尾或后跟非单词组成字符。单词组成字符是字母、数字和下划线。
因此,您需要明确请求空格(或行开头和/或结尾)在那里:
grep -E '(^| )ABC( |$)' file1
Run Code Online (Sandbox Code Playgroud)
如果您还想包含其他空白字符,请用更大的集合替换上面的空格,例如[[:space:]](再次参见grep(1)手册页)。