我想用一个单词grep一个文件,比如"AAA",它以空格或换行符结尾。我知道如何单独编写,如下所示,但在组合它们时遇到了问题(在某种意义上,它同时输出VVV AAA
和AAA VVV
)。
$echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA$"
>VVV AAA
$echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA[[:space:]]"
>AAA VVV
我试过用[]
,但没有成功。
发布于 2012-11-05 00:00:40
如果要在字符串中的任何位置或行尾查找后跟空格的单词AAA
,请使用
grep -P "AAA( |$)"
发布于 2012-11-05 04:46:49
您可以使用grep的-e
选项来选择许多模式:
grep -e "AAA$" -e "AAA[[:space:]]"
来自grep man的话:
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify
multiple search patterns, or to protect a pattern beginning with
a hyphen (-). (-e is specified by POSIX.)
发布于 2012-11-05 00:05:31
如果还可以匹配AAA后跟任何其他非字母数字字符,则使用"AAA\b"
。根据grep man pages,\b
匹配单词边缘的空字符串。
$ echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA\b"
AAA VVV
VVV AAA
https://stackoverflow.com/questions/13220192
复制相似问题