如何使用grep跨多行查找模式?

如何使用grep跨多行查找模式?

我想找到按顺序包含“abc”和“EFG”的文件,这两个字符串位于文件中的不同行上。有内容的文件:

blah blah..blah blah..blah abc blah
blah blah..blah blah..blah blah..blah efg blah blah
blah blah..blah blah..

应该是匹配的。


元芳怎么了
浏览 2354回答 3
3回答

一只萌萌小番薯

grep不足以执行此操作。皱褶在大多数现代linux系统中都可以使用pcregrep -M  'abc.*(\n|.)*efg' test.txt其中-m,-多行允许模式匹配多行。有一个新的pcre2grep还有。两者均由PCRE项目.pcre2grep可用于MacOSX麦克港作为港口的一部分pcre2:% sudo port install pcre2通过自制作为:% brew install pcre或用于港口2% brew install pcre2

ibeautiful

我不确定grep是否可行,但是sed使它变得非常简单:sed -e '/abc/,/efg/!d' [file-with-content]
打开App,查看更多内容
随时随地看视频慕课网APP