40

What is the best way to output from a file starting from a specific line (big number like 70000). Something like:

cat --line=70000 <file>
60

Take a look at tail, more precisecly, it's --lines=+N switch:

tail --lines=+100 <file>
| improve this answer | |
  • Wow. I didn't know this even after using this on linux for 8 years ! I always used a bash fn ! Thanks ! getFromLine () { lineno=wc -l $1 | awk '{print $1}' ; lineno=expr $lineno - $2 ; tail -n $lineno $1 ; } – secureBadshah Oct 30 '09 at 8:53
  • 2
    As a note, this does not work on Mountain Lion (Darwin Kernel Version 13.1.0). The variant for Mountain lion is tail -n – Kaushik Ghose Apr 8 '14 at 15:42
22

The most obvious way is tail. The syntax might be slightly different depending on what OS you are using:

tail -n +70000

If you can not get tail to work, you could use sed, but it might end up slower:

sed -pe '1,69999d'
| improve this answer | |
  • tail worked just fine in MinGW (on a 600 MB text file). The runtime was only a few seconds (but the input file could have been in the file cache already). – Peter Mortensen Jun 15 '16 at 22:17
2

If instead of a line number you need to start listing at the line containing a given $phrase, try the following.

more -1000 +/"$phrase" yourfilename | sed '1,4d'

The -1000 will continuously list text for up to 1000 lines; you can change this as needed. The sed command will chop off the first 4 lines of output, which were automatically inserted by more, containing a blank line, the message "... skipping", and the two lines preceding your intended starting line. I guess this may vary depending on your system.

| improve this answer | |
2

You can use NR parameter with the awk command:

cat <file> | awk '{if (NR>=7000) print}'
| improve this answer | |
  • 2
    You can use this command with other limits. As a sample:cat messages | awk '{if (NR>=7000 && NR <7003) print}' shows you row 7000, 7001 and 7002 only. – Gefolge Jun 30 '17 at 6:26
-1

tail +250

more about unix cat command

| improve this answer | |
  • 2
    fascinating link, but it doesn't really give any information that applies to this question, and your tail suggestion is the same as the accepted and other answers from weeks ago. why bother to post? – quack quixote Nov 18 '09 at 5:48
  • The link is broken - ...can't find the server at www.scripterworld.com. – Peter Mortensen Dec 17 '16 at 18:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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