0

试图弄清楚如何跨多行编写命令,因为真正的命令是很长的提示符(4200个字符),所以我尝试了这个例子:

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

some thing
some
thing

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

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

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

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

几乎就好像它运行了两次 grep,一次用于“some”,一次用于“thing”。有什么方法可以正确使用\将 2 组合到结果类似于第一个 grep 的位置?

4

3 回答 3

3

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

在您的示例中,它将类似于:

pcregrep -M 'some\nthing' test
于 2012-10-23T22:25:17.577 回答
1

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

grep -zPo 'some\nthing' test
于 2015-03-12T19:30:09.687 回答
0

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

出品:some thing

如同:grep "some thing" test.txt

于 2012-10-24T15:05:48.200 回答