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
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.
tail -n +`egrep -n "pattern" "file_to_search.txt" | cut -d ":" -f 2 | tail -n 1` "file_to_tail.txt"
-
The section in grey (from egrep -n "pattern" to tail -n 1) is enclosed in backticks.– gvkDec 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 :)– gvkDec 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