匹配模式 > 0 in linux 后获取行
Get line after matching pattern > 0 in linux
我有这个日志,我想在不使用脚本的情况下为“QTY REGS > 0”的作业打印状态为“完成”的行。
INFO 2021-01-19 02:00:00,001 JOB: 0970b711] starting
INFO 2021-01-19 02:00:01,001 JOB: 0970b711] adding records
INFO 2021-01-19 02:00:02,001 JOB: 0970b711] registered
INFO 2021-01-19 02:00:03,001 JOB: 0970b711] QTY REGS: 3 processing
INFO 2021-01-19 02:00:03,001 JOB: 32970g233] debug started
INFO 2021-01-19 02:00:04,001 JOB: 0970b711] finished
INFO 2021-01-19 02:00:05,001 JOB: 10d0g655] starting
INFO 2021-01-19 02:00:06,001 JOB: 10d0g655] QTY REGS: 0 processing
INFO 2021-01-19 02:00:07,001 JOB: 10d0g655] finished
INFO 2021-01-19 02:00:08,001 JOB: 0870a711] starting
INFO 2021-01-19 02:00:09,001 JOB: 0870a711] QTY REGS: 1 processing
INFO 2021-01-19 02:00:10,001 JOB: 0870a711] retry
INFO 2021-01-19 02:00:11,001 JOB: 0870a711] connect error
INFO 2021-01-19 02:00:12,001 JOB: 0870a711] finished
我想return
INFO 2021-01-19 02:00:03,001 JOB: 0970b711] QTY REGS: 3 processing
INFO 2021-01-19 02:00:09,001 JOB: 0870a711] QTY REGS: 1 processing
这些记录中 QTY REGS > 0 具有相同作业编号但已“完成”描述的行
INFO 2021-01-19 02:00:04,001 JOB: 0970b711] finished
INFO 2021-01-19 02:00:12,001 JOB: 0870a711] finished
我建议使用数组:
awk '=="QTY" && >0{a[]=1}; =="finished" && a[]==1{print}' file
输出:
INFO 2021-01-19 02:00:04,001 JOB: 0970b711] finished
INFO 2021-01-19 02:00:12,001 JOB: 0870a711] finished
{print}
也可以省略
我有这个日志,我想在不使用脚本的情况下为“QTY REGS > 0”的作业打印状态为“完成”的行。
INFO 2021-01-19 02:00:00,001 JOB: 0970b711] starting
INFO 2021-01-19 02:00:01,001 JOB: 0970b711] adding records
INFO 2021-01-19 02:00:02,001 JOB: 0970b711] registered
INFO 2021-01-19 02:00:03,001 JOB: 0970b711] QTY REGS: 3 processing
INFO 2021-01-19 02:00:03,001 JOB: 32970g233] debug started
INFO 2021-01-19 02:00:04,001 JOB: 0970b711] finished
INFO 2021-01-19 02:00:05,001 JOB: 10d0g655] starting
INFO 2021-01-19 02:00:06,001 JOB: 10d0g655] QTY REGS: 0 processing
INFO 2021-01-19 02:00:07,001 JOB: 10d0g655] finished
INFO 2021-01-19 02:00:08,001 JOB: 0870a711] starting
INFO 2021-01-19 02:00:09,001 JOB: 0870a711] QTY REGS: 1 processing
INFO 2021-01-19 02:00:10,001 JOB: 0870a711] retry
INFO 2021-01-19 02:00:11,001 JOB: 0870a711] connect error
INFO 2021-01-19 02:00:12,001 JOB: 0870a711] finished
我想return
INFO 2021-01-19 02:00:03,001 JOB: 0970b711] QTY REGS: 3 processing
INFO 2021-01-19 02:00:09,001 JOB: 0870a711] QTY REGS: 1 processing
这些记录中 QTY REGS > 0 具有相同作业编号但已“完成”描述的行
INFO 2021-01-19 02:00:04,001 JOB: 0970b711] finished
INFO 2021-01-19 02:00:12,001 JOB: 0870a711] finished
我建议使用数组:
awk '=="QTY" && >0{a[]=1}; =="finished" && a[]==1{print}' file
输出:
INFO 2021-01-19 02:00:04,001 JOB: 0970b711] finished INFO 2021-01-19 02:00:12,001 JOB: 0870a711] finished
{print}
也可以省略