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