如何使用grep匹配空格或换行符
我想用一个单词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
我尝试过使用[]
,但没有成功..
如果您正在查找单词AAA
后跟字符串中任何位置的空格,或者在行尾,请使用
grep -P "AAA( |$)"
您可以使用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.)
如果可以接受AAA以及任何其他非字母数字字符,则使用"AAA\b"
。 根据grep手册页 , \b
匹配单词边缘的空字符串。
$ echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA\b" AAA VVV VVV AAA