如何解决sed 搜索正则表达式模式并删除具有上述模式的行
这是我的 file.txt 内容。在这里,我尝试使用以下命令搜索模式 text: 'About'
并删除 items:[{
行:
文件.txt:
items: [{
text: 'About',handler: function() { TP.aboutWindow() }
命令:
sed -n -i -E '/text\: \'About\'/{n; $p; x; d}; x; 1!p; ${x;p;}' file.txt
但它似乎不起作用。有什么办法可以去除图案上方的线条吗?
提前致谢。
解决方法
如果您对 awk
没问题,请在此处尝试使用 awk
+ tac
组合。这将在终端上打印输出,一旦您对结果感到满意,您也可以在以下命令的最后附加 > temp && mv temp Input_file
。
tac Input_file |
awk '
found && /items:/{
found=""
next
}
/text: \047About\047/{
found=1
}
1' |
tac
,
你可以使用
sed -i "N;/\n.*text: 'About'/"'!P;D' file.txt
详情:
-
-i
- 文件就地替换模式开启 -
N
- 在整个文件中打开一个两行窗口(它将以换行符开头的下一行读取到模式空间中) -
\n.*text: 'About'
匹配换行符,然后是任何文本,然后是text: 'About'
-
!P;D
- 如果匹配,则不打印第一行,然后删除第一行并重复。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。