I am trying to make a script to summarize a file containing below logs in short format.
Snippet of log :
$ 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.
Desired output:
2012-08-29T03:13:33 clr crit Some serious problem in system.
2012-08-29T03:13:33 set min Some minor problem in system.
I tried below approch :
$ 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
Below command gives me 5th line from the pattern "T" ,but the problem is with desired text line, In some cases it is in 5th line and in some cases it is in 4th line.
$ awk '/T/ { show[NR+4]++ } show[NR]' input.txt >file2
$ paste file1 file2
Query:
In some cases it is in 5th line and in some cases it is in 4th line. How can I make sure to find the exact text. Please let me know if its possible.