如何在整个文件中使用awk在单行中打印两个匹配的单词

时间:2018-01-22 14:24:37

标签: bash awk

我有一个格式低于日期的日志文件。

Resetid daldiodu490284jfslfj

部门IT

星期五

时间33.0毫秒

EndTime 50.0毫秒

EOF

Resetid fjsoifuoieru9003948

部门IT

星期二

时间43.0毫秒

EndTime 90.0毫秒

EOF

我希望O / p匹配 Resetid 时间,如下所示。

Resetid daldiodu490284jfslfj时间33.0毫秒

Resetid fjsoifuoieru9003948时间43.0毫秒

我正在使用= awk'/ Resetid / {RESETID = $ 0;下一个} /时间/ {打印RESETID“,”$ 0}“ 但是错误的o / p。请帮忙

1 个答案:

答案 0 :(得分:0)

/Time/也匹配"结束时间"。使用克拉^表示它必须以"时间"开头。此外,next似乎没必要。

awk '/Resetid/{ RESETID=$0 } /^Time/{ print RESETID " " $0 }'

输出:

Resetid daldiodu490284jfslfj Time 33.0mmsec
Resetid fjsoifuoieru9003948 Time 43.0mmsec