0

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.

4 Answers 4

1
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.

1
tail -n +`egrep -n "pattern" "file_to_search.txt" | cut -d ":" -f 2 | tail -n 1` "file_to_tail.txt"
4
  • The section in grey (from egrep -n "pattern" to tail -n 1) is enclosed in backticks.
    – gvk
    Dec 16, 2009 at 8:40
  • Thanks for the answer. I assume you mean cut -d ":" -f 1 to get the first field - the line number. Dec 16, 2009 at 9:07
  • Second field actually. The first field would be the matching file name :)
    – gvk
    Dec 16, 2009 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 :-) Dec 16, 2009 at 10:31
1

This simple awk program should do the job:

awk '/pattern/,""' filename
0

And also:

sed -n '/pattern/,$ p' filename

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .