Unix 多行grep命令(非多行grep)

Unix 多行grep命令(非多行grep),unix,grep,Unix,Grep,试图弄清楚如何跨多行编写命令,因为真正的命令需要很长的提示符(4200个字符),所以我尝试了以下示例: 制作了一个包含以下3行的测试文件: 一些东西 一些 东西 当我做这个grep时:grep“某物”测试 我得到了预期的结果:一些事情 但是当我做这个grep时:grep“一些\ thing”测试 我得到了意想不到的结果: 一些东西 东西 几乎就好像它运行了两次grep,一次是“一些”,一次是“东西”。有没有办法正确地使用\将2组合到结果与第一个grep相似的位置?而不是grep,您必须使用pcr

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

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

一些东西

一些

东西

当我做这个grep时:
grep“某物”测试

我得到了预期的结果:
一些事情

但是当我做这个grep时:
grep“一些\

thing”测试

我得到了意想不到的结果:
一些东西

东西


几乎就好像它运行了两次grep,一次是“一些”,一次是“东西”。有没有办法正确地使用
\
将2组合到结果与第一个grep相似的位置?

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

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

pcregrep -M 'some\nthing' test

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

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

pcregrep -M 'some\nthing' test

看起来是这样的:
grep“一些\

| thing”test.txt

制作:
一些东西


与:
grep“some thing”test.txt

相同,所以看起来是这样做的:
grep“一些\

| thing”test.txt

制作:
一些东西


同:
grep“some thing”test.txt

使用-zPo您可以使grep使用多种语言:

grep -zPo 'some\nthing' test

使用-zPo可以使grep具有多语言行为:

grep -zPo 'some\nthing' test

重读一下这个。。。您的预期输出是什么?@steve我希望与单行程序相同(因此第一个示例只返回了
some thing
)。只需重新阅读此内容。。。您的预期输出是什么?@steve我希望与单行程序相同(因此,第一个示例只返回了
some thing
)+酷!使用-z-o,你也可以让grep这样做(见下文)。+酷!使用-z-o,您还可以让grep这样做(参见下文)。