我正在尝试制作一个脚本来总结一个包含以下短格式日志的文件。
日志片段:
$ cat input.txt
ffffff 1301 2012-08-29T03:13:33 clr crit
Some serious problem
cccc dddddd eeeeee
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Some serious problem in system.
ffffff 1302 2012-08-29T03:13:33 set min
Some serious problem
cccc dddddd eeeeee
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Some minor problem in system.
期望的输出:
2012-08-29T03:13:33 clr crit Some serious problem in system.
2012-08-29T03:13:33 set min Some minor problem in system.
我尝试了以下方法:
$ cat input.txt | grep -iE "set|upd|clr" | awk '{print $3,$4,$5}' >file1
12-08-29T03:13:33 clr crit
12-08-29T03:13:33 set min
下面的命令给了我模式“T”的第 5 行,但问题在于所需的文本行,在某些情况下它在第 5 行,在某些情况下它在第 4 行。
$ awk '/T/ { show[NR+4]++ } show[NR]' input.txt >file2
$ paste file1 file2
询问:
在某些情况下它在第 5 行,在某些情况下它在第 4 行。我怎样才能确保找到确切的文本。如果可能,请告诉我。