Удалить первые n строк большого текстового файла

Мне нужно удалить первые 42 строки дампа SQL объемом 2 ГБ.

Я знаю, что могу просмотреть первые строки, используя:

head -n 44 dump.sql

Но есть ли способ их отредактировать или удалить?

64
задан 24 January 2014 в 21:44

8 ответов

Если вы хотите просто просмотреть строки из 43-го, вы можете использовать

tail -n +43 dump.sql

Знак + важен - без него tail напечатает последние 43 строки вместо. В качестве альтернативы с помощью «sed»

sed 1,42d dump.sql

Если вы действительно хотите удалить первые 42 строки из исходного файла, вы можете сделать, чтобы sed внес изменения на месте с помощью опции -i

sed -i 1,42d dump.sql
0
ответ дан 24 January 2014 в 21:44

Это кажется самым простым:

sed '1,42d' test.sql > test2.sql

Удалите строки 1-42 из test.sql и сохраните как test2.sql

0
ответ дан 24 January 2014 в 21:44

попробуйте это,

tail -n +43 dump.sql > dump_new.sql

0
ответ дан 24 January 2014 в 21:44

Вы можете использовать Vim в режиме Ex:

ex -s -c '1d42|x' dump.sql
  1. 1 перейти к первой строке

  2. 42 выбрать 42 линии

  3. d удалить

  4. x сохранить и закрыть

0
ответ дан 24 January 2014 в 21:44

Извините, я не могу дать вам текущий код прямо сейчас. Однако попробуйте взглянуть на что-то вроде

tail -n arcv(`wc -l`) -44

. Что нужно сделать (после правильного форматирования) - это подсчитать количество строк в файле (wc -l), вычесть из него 44 (-44 ), а затем распечатайте все, начиная с 45-й строки в файле.

Надеюсь, это поможет и удачи.

0
ответ дан 24 January 2014 в 21:44

Попробуйте,

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
0
ответ дан 24 January 2014 в 21:44

Просто чтобы добавить это. Если вы используете Mac, вам нужно добавить расширение для резервного копирования. Ответ из этого поста .

sed -i '.bak' 1,42d dump.sql
0
ответ дан 24 January 2014 в 21:44

Из-за sed несоответствия через Linux и Mac, я разрешил использовать tail -n +43 dump.sql > dump.sql формат.

0
ответ дан 8 October 2019 в 16:46

Другие вопросы по тегам:

Похожие вопросы: