Saturday, April 9, 2022

[SOLVED] How to "grep" out specific line ranges of a file

Issue

There are often times I will grep -n whatever file to find what I am looking for. Say the output is:

1234: whatev 1
5555: whatev 2
6643: whatev 3

If I want to then just extract the lines between 1234 and 5555, is there a tool to do that? For static files I have a script that does wc -l of the file and then does the math to split it out with tail & head but that doesn't work out so well with log files that are constantly being written to.


Solution

Try using sed as mentioned on http://linuxcommando.blogspot.com/2008/03/using-sed-to-extract-lines-in-text-file.html. For example use

sed '2,4!d' somefile.txt

to print from the second line to the fourth line of somefile.txt. (And don't forget to check http://www.grymoire.com/Unix/Sed.html, sed is a wonderful tool.)



Answered By - Scorchio
Answer Checked By - Marie Seifert (WPSolving Admin)