【发布时间】:2017-02-01 03:00:03
【问题描述】:
关于这个有效的命令:
awk '
/Start/{f=1;rec=""}
f{rec=rec $0 ORS}
/End/{if (rec~/middle/) printf "%s",rec}
' original-file.txt > new-file-with-match.txt
如何将此脚本修改为:
- 将匹配打印并输出到 new-file-with-match.txt(现在可以使用)
- 删除 original-file.txt (?) 中的匹配项
废话1234 开始 废话。。 废话。。 中间 废话…… 结束 废话5324STEP1:原始文件.txt
开始 废话..废话 废话。。 中间 废话…… 结束第 2 步:new-file-with-match.txt
废话1234 废话5324STEP3:original-file.txt(最后阶段)
使用 SED 可以更轻松地完成这项工作吗?
【问题讨论】:
-
edit 您的问题包括简洁、可测试的样本输入和预期输出,通过
{}按钮正确格式化。 sed 用于在单个行上进行简单替换,仅此而已。您要做的不是对单个行进行简单的替换,因此它不是 sed 的工作。听起来 awk 很简单,但在您提供缺失的信息之前很难说。