如何使用grep来匹配任何空格或换行符(how to use grep to match with

2019-07-03 13:49发布

我希望到grep一个文件,一个字,说:“AAA”,并与空格或换行结束。 我知道如何seperately写这篇文章,如下,但结合他们有问题(因为它同时输出感VVV AAAAAA VVV )。

$echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA$" 
>VVV AAA
$echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA[[:space:]]" 
>AAA VVV 

我已经尝试使用[]但没有成功..

Answer 1:

如果您正在寻找单词AAA随后空间,在string中任何地方,或行的结尾,然后使用

grep -P "AAA( |$)"


Answer 2:

您可以使用-e的grep的选项选择多款:

grep -e "AAA$" -e "AAA[[:space:]]"

从grep的人:

-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.)


Answer 3:

使用"AAA\b" ,如果它是可以接受的也匹配AAA跟任何其他非字母数字字符。 据该grep的手册页 , \b在字的边缘匹配空字符串。

$ echo -e "AAA VVV \nVVV AAA\nBBB" | grep "AAA\b"
AAA VVV
VVV AAA


文章来源: how to use grep to match with either whitespace or newline