bash: hwo to know NUM option in grep -A -B "on the fly" ?
Posted
by Michael Mao
on Stack Overflow
See other posts from Stack Overflow
or by Michael Mao
Published on 2010-04-16T00:35:49Z
Indexed on
2010/04/16
0:43 UTC
Read the original article
Hit count: 294
Hello everyone:
I am trying to analyze my agent results from a collection of 20 txt files here.
If you wonder about the background info, please go see my page, what I am doing here is just one step.
Basically I would like to take only my agent's result out of the messy context, so I've got this command for a single file:
cat run15.txt | grep -A 50 -E '^Agent Name: agent10479475' | grep -B 50 '^=='
This means : after the regex match, continue forward by 50 lines, stop, then match a line separator starts with "==", go back by 50 lines, if possible (This would certainly clash the very first line).
This approach depends on the fact that the hard-coded line number counter 50, would be just fine to get exactly one line separator.
And this would not work if I do the following code:
cat run*.txt | grep -A 50 -E '^Agent Name: agent10479475' | grep -B 50 '^=='
The output would be a mess...
My question is: how to make sure grep knows exactly when to stop going forward, and when to stop getting backward?
Any suggestion or hint is much appreciated.
© Stack Overflow or respective owner