in reply to extract (a range of) numbered lines from a file
You could also combine sed and awk (TIMTOWTDI applies):
sed -e '10,15p;4p;s/.*//' file | awk '!/^$/{print $0}' somefile
TIMTOWTDI indeed. For starters, this has a small bug/typo which is the omission of the > before "somefile". If you put that it in then it will work but the syntax is rather unweildy. We can simplify it on the awk side by using the /./ construct:
sed -e '10,15p;4p;s/.*//' file | awk /./ > somefileBut if that's all you are using awk to do, you may as well just grep.
sed -e '10,15p;4p;s/.*//' file | grep . > somefileInstead, here's an awk expression of the full task:
awk '(NR >= 10 && NR <= 15); NR == 4' file > somefileNo doubt a sedhead could rattle off the pure sed version but I'm a bit rusty in that department.
|
|---|