regex - 如何使用bash在单词后匹配带有换行符的文本
问题描述
我需要在 bash 中进行单词匹配后匹配文件的结尾。我有这样的文字:
line 1
line 2
line 3
key line
line 5
line 6
我假装在“关键线”之后得到了所有东西,所以我的输出是:
line 5
line 6
我怎样才能使用 bash 做到这一点?我试过 grep -o -P '(?<=key line\n)[\s\S]*'
但没用,虽然它在https://regexr.com/中进行了测试
解决方案
grep
是基于行的。当您想跨行搜索时,它效果不佳。
sed
可以胜任这份工作了。这将d
删除从 line1
到包含 的所有行key line
,只留下后面的行:
$ sed '1,/key line/d' test.txt
line 5
line 6
推荐阅读
- java - 如何从 url 中过滤 txt
- bash - 如何“for f loop”并删除空行
- jquery - 如何使用jquery为下拉菜单选择ID(html标签)中带有空格的值?
- python - 如何剥离字符串并将其转换为浮点数(小数)?
- javascript - Cannot edit HTML in Qualtrics
- c - 如何将信息从 txt 文件传输到结构的动态向量
- c++ - Is there a more intuitive way to use Inline Assembly in C++ in Linux than the GCC or Clang implementation?
- c# - 有没有办法将 wpf 窗口作为另一个窗口的子窗口插入
- azure - Can't publish the Kudu site when running an App Service behind a WAF enabled Application Gateway
- php - 如何使用 html 表单将 php 地理编码地址插入 mysql 数据库