I need to remove the first 42 lines of a 2GB SQL dump.
I know I can view the first lines using:
head -n 44 dump.sql
But is there anyway to edit or remove them?
I need to remove the first 42 lines of a 2GB SQL dump.
I know I can view the first lines using:
head -n 44 dump.sql
But is there anyway to edit or remove them?
If you want to just view the lines from the 43rd on you can use
tail -n +43 dump.sql
The +
sign is important - without it, tail
will print the last 43 lines instead. Alternatively with 'sed'
sed 1,42d dump.sql
If you want to really delete the first 42 lines from the original file then you can make sed make the change inplace with the -i
option
sed -i 1,42d dump.sql
This seems to be the easiest:
sed '1,42d' test.sql > test2.sql
Remove lines 1-42 from test.sql and save as test2.sql
You can use Vim in Ex mode:
ex -s -c '1d42|x' dump.sql
1
move to first line
42
select 42 lines
d
delete
x
save and close
Because of sed
discrepancies across Linux and Mac, I resolved to use tail -n +43 dump.sql > new.sql
format.
> dump.sql
is interpreted by the shell before tail ... dump.sql
reads the file, i.e. the file is flushed before tail
opens it, hence the file is completely empty after that command.
– PerlDuck
Dec 09 '19 at 16:29
Sorry, I can't give you actual code right now. However, try looking at something along the lines of
tail -n arcv(`wc -l`) -44
What this should do (once properly formatted) is count the number of lines in the file (wc -l), subtract 44 from it (-44) and then print out everything starting with the 45th line in the file.
Hope this helps and good luck.
wc -l
on the file, you process it twice, whereas sed
or tail
process it only once.
– yo'
Jan 24 '14 at 18:36
Try this,
head -n 42 dump.sql > tmp; cat dump.sql | grep -vxf tmp > dump.sql.new; rm tmp
or,
a=$(cat dump.sql| wc -l); tail -n "$((a-42))" dump.sql > dump.sql.new
tail
. I found many times something new to learn from your answers. thanks. – sourav c. Jan 24 '14 at 19:20sed -i 1,50000000d 17GigFile
creates a temp filesedXYZ
that consumes many more gigabytes. Is there an approach without temp files? – juanmf Oct 09 '18 at 20:48tail -n +43
andhead -n 44
as mentioned in the question? – Hashim Aziz Aug 26 '19 at 20:00