file
:~ cat file | tail -n +5 | head -n1
Hope it helps...
Update: following the comments to this post, here are a couple of other solutions. Thanks to all who contributed !
~ cat file | sed -ne 5p ~ cat file | sed -ne '5{p;q}'
The second solution has the advantage of closing the input after line 5, so if you have an expensive command, you'll kill it with a SIGPIPE soon after it produces line 5. Other ones:
~ cat file | awk 'NR==5 {print; exit}' ~ cat file | head -n5 | tail -n1
The last one, while simpler, is slightly more expensive because all the lines before the one you're interested in are copied twice (first from cat
to head
and then from head
to tail
). This happens less with the first solution because, even if tail
passes on all the lines after the one you're interested in, it is killed by a SIGPIPE when head
closes.