Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sed how to delete first 17 lines and last 8 lines in a file

I have a big file 150GB CSV file and I would like to remove the first 17 lines and the last 8 lines. I have tried the following but seems that's not working right

sed -i -n -e :a -e '1,8!{P;N;D;};N;ba' 

and

sed -i '1,17d' 

I wonder if someone can help with sed or awk, one liner will be great?

like image 257
Deano Avatar asked Feb 07 '13 13:02

Deano


2 Answers

head and tail are better for the job than sed or awk.

tail -n+18 file | head -n-8 > newfile
like image 184
choroba Avatar answered Oct 24 '22 14:10

choroba


awk -v nr="$(wc -l < file)" 'NR>17 && NR<(nr-8)' file
like image 23
Ed Morton Avatar answered Oct 24 '22 15:10

Ed Morton