You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改正则表达式实现grep匹配后插入换行分隔备份日志

实现方法

不需要修改原grep命令的匹配规则,直接通过管道将grep输出流处理即可,推荐用awk实现,逻辑简单无兼容问题,完整命令如下:

grep -A 2 -B 6 "^Errors: [1-9]" INC0108890.txt | awk '
/^--$/ { next }
/^Backup Set:/ && NR>1 { print "" }
1
'

逻辑说明

  • /^--$/ { next }:直接丢弃grep自动生成的--组分隔行,不输出
  • /^Backup Set:/ && NR>1 { print "" }:所有以Backup Set:开头的行,只要不是整个输出的第一行(NR是awk内置行号变量,NR>1表示非首行),就在打印该行前先输出一个空行,自动分隔不同备份记录块。不管两个块是相邻无分隔、还是被grep加了--分隔,都能统一处理
  • 末尾的1是awk简写语法,等价于{print},即打印所有当前处理的行

如果习惯用sed,也可以用等效的sed版本:

grep -A 2 -B 6 "^Errors: [1-9]" INC0108890.txt | sed -e '/^--$/d' -e '2,$s/^Backup Set:/\n&/'

sed逻辑和awk完全一致:先删除所有--行,再从第二行开始,给所有Backup Set:开头的行前插入换行符实现空行分隔。

内容的提问来源于stack exchange,提问作者ZimCanIT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:45:35