Issue
I want to extract the Nth line after a matching pattern using grep
, awk
or sed
.
For example I have this piece of text:
Revision:
60000<br />
And I want to extract 60000.
I tried Revision:([a-z0-9]*)\s*([0-9]){5}
which matches the Revision together with the revision number but when I pass it to grep: grep Revision:([a-z0-9]*)\s*([0-9]){5} file.html
I get nothing.
How can I achieve this?
Solution
To extract the Nth line after a matching pattern
you want:
awk 'c&&!--c;/pattern/{c=N}' file
e.g.
awk 'c&&!--c;/Revision:/{c=5}' file
would print the 5th line after the text "Revision:"/.
See Printing with sed or awk a line following a matching pattern for more information.
Answered By - Ed Morton