Мне нужно удалить первые 42 строки дампа SQL на 2 ГБ.
Я знаю, что я могу просматривать первые строки, используя:
head -n 44 dump.sql
Но есть ли способ редактировать или удалять их?
Мне нужно удалить первые 42 строки дампа SQL на 2 ГБ.
Я знаю, что я могу просматривать первые строки, используя:
head -n 44 dump.sql
Но есть ли способ редактировать или удалять их?
Это кажется самым простым:
sed '1,42d' test.sql > test2.sql
Удалить строки 1-42 из test.sql и сохранить как test2.sql
Если вы хотите просто просмотреть строки из 43-го, вы можете использовать
tail -n +43 dump.sql
Значок +
важен - без него tail
выведет вместо него строки last . Альтернативно с 'sed'
sed 1,42d dump.sql
Если вы хотите действительно удалить первые 42 строки из исходного файла, вы можете сделать sed сделать изменение в месте с опцией -i
sed -i 1,42d dump.sql
попробуйте это,
tail -n +43 dump.sql > dump_new.sql
р>
Вы можете использовать Vim в режиме Ex:
ex -sc '1d42|x' dump.sql
1
перейти в первую строку
42
выберите 42 строки
d
delete
x
сохранить и закрыть
Извините, я не могу дать вам реальный код прямо сейчас. Однако попробуйте взглянуть на что-то по строкам
tail -n arcv('wc -l') -44
Что это должно сделать (после правильного форматирования) подсчитывается количество строк в файле (wc -l), вычитают из него 44 (-44) и затем распечатывают все, начиная с 45-й строки в файле. р>
Надеюсь, это поможет и удачи.
Попробуйте это,
head -n 42 dump.sql > tmp; cat dump.sql | grep -vxf tmp > dump.sql.new; rm tmp
или, р>
a=$(cat dump.sql| wc -l); tail -n "$((a-42))" dump.sql > dump.sql.new