一文教会你如何使用grep跨多行查找模式匹配
目录
- 使用 grep 匹配多个新行
- 使用 pcre2grep 代替(perl 兼容的 grep)
- 总结
grep 是一个命令行文本搜索实用程序,能够在文件和其他类型的输入中查找模式和字符串。大多数匹配只匹配一行,但跨多行匹配通常很有用。
使用 grep 匹配多个新行
处理多行匹配是一件很困难的事情grep 。一个更好的工具是awk or 仍然可以在 中处理此问题grep,但是该命令非常笨拙。 这做了几件事: 正grep 则不是完成这项工作的最佳工具,还有一种替代方法pcre2grep ,即开箱即用地支持 Perl 兼容正则表达式,并且能够非常轻松地匹配多行正则表达式。 它可能已安装在您的系统上,但如果没有,您可以从包管理器中获取它: 然后,您只需要使用-M 参数运行它。 请注意,这仍然需要您手动将“换行符或任何字符”与(n|.)* . 或者,您可以使用该(?s) 技巧打开 PCRE_DOTALL 并使点字符也匹配换行符。 到此这篇关于如何使用grep跨多行查找模式匹配的文章就介绍到这了,更多相关grep跨多行查找模式匹配内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!awk '/from/,/to/' file
sed -n '/from/,/to/p' file
grep -Pz '(?s)from.*n.*to' test
总体而言,这将为脚本目的完成,但如果您自己输入,请记住很多。此外,使用该-o 标志仅打印匹配项也会打印出尾随零字节字符,这可能会导致其他问题。使用 pcre2grep 代替(Perl 兼容的 grep)
sudo apt install pcre2-utils
pcre2grep -M 'from(n|.)*to' file
pcre2grep -M '(?s)from.*to' file
总结
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341