How can I extract all the contents of a file which comes after a given line ? The line can be matched by exact contents or regular expression.

link|improve this question

69% accept rate
feedback

4 Answers

up vote 1 down vote accepted
awk 'BEGIN { found=0; } /RE GOES HERE/ { found = 1; } found { print; }' $filename

Avoids multiple file traversals, so should (possibly) perform better for large files where the match is towards the end of the file.

link|improve this answer
feedback
tail -n +`egrep -n "pattern" "file_to_search.txt" | cut -d ":" -f 2 | tail -n 1` "file_to_tail.txt"
link|improve this answer
The section in grey (from egrep -n "pattern" to tail -n 1) is enclosed in backticks. – gvk Dec 16 '09 at 8:40
Thanks for the answer. I assume you mean cut -d ":" -f 1 to get the first field - the line number. – Robert Munteanu Dec 16 '09 at 9:07
Second field actually. The first field would be the matching file name :) – gvk Dec 16 '09 at 9:08
Hm, somehow that does not work for me. Using grep 2.5.4 on OpenSUSE 11.2 . But I get the drift :-) – Robert Munteanu Dec 16 '09 at 10:31
feedback

This simple awk program should do the job:

awk '/pattern/,""' filename
link|improve this answer
feedback

And also:

sed -n '/pattern/,$ p' filename
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.