多行上的grep命令(不是多行grep)

时间:2012-10-23 22:16:57

标签: unix grep

试图找出如何在多行中编写命令,因为真正的命令是为了提示(4200个字符),所以我尝试了这个例子:

制作一个包含以下3行的测试文件:

some thing
some
thing

当我这样做时:grep "some thing" test

我得到了预期的结果:
some thing

但是,当我这样做时:grep "some \
thing" test

我得到了意想不到的结果:
some thing
thing

几乎就像两次运行grep一样,一次用于“some”而一次用于“thing”。有没有办法正确使用\将2结合到第一个grep的结果?

3 个答案:

答案 0 :(得分:3)

而不是 grep ,您必须使用 pcregrep ,然后您才能通过 -M 选项在模式中使用新行。

在您的示例中,它将是:

pcregrep -M 'some\nthing' test

答案 1 :(得分:1)

使用-zPo可以使grep表现为多语言:

grep -zPo 'some\nthing' test

答案 2 :(得分:0)

所以看起来这样做了:
grep "some \
|thing" test.txt

制作:some thing

grep "some thing" test.txt

相同