I wanted to concatenate specific rows of data so that I could analyse and chart them in Excel. My data had rows starting with a date and a keyword:
01/01/2013 12 46 79 xyz 0.1 02/01/2013 56 23 xyz 0.5
And the output I wanted is:
01/01/2013 xyz 0.1 02/01/2013 xyz 0.5
Below is a sed script to concatenate those two lines and ignore the others:
# Use: sed -n -f Concat.sed test.log # H Hold <- Hold + \n + Pattern # h Hold <- Pattern # g Pattern = Hold # First pattern /..\/..\/..../ { h } # Second pattern /xyz/ { H g s/\n/ / p }
The "trick" is to collect the rows that I need into the hold space first then transfer it to the pattern space where the line break can be replaced by a space.
No comments:
Post a Comment