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

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

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

head -n 44 dump.sql

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

1
задан 24 January 2014 в 23:44

5 ответов

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

tail -n +43 dump.sql

Знак + важен - без него tail отобразит представление ! d1] 43 строки. Альтернативно с 'sed'

sed 1,42d dump.sql

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

56
ответ дан 24 May 2018 в 12:35
  • 1
    Удивительный ответ, фантастическое использование tail. Я нашел много раз что-то новое, чтобы узнать из ваших ответов. Благодарю. – souravc 25 January 2014 в 01:20
  • 2
    О человеческий хвост -n +43 - сменщик игры! Я использовал неловкое обращение sed к тому же эффекту. – pfctdayelise 20 June 2017 в 06:16

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

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

9
ответ дан 24 May 2018 в 12:35

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

ex -sc '1d42|x' dump.sql
1 перейти к первой строке 42 выбрать 42 строки d удалить x сохранить и закрыть
3
ответ дан 24 May 2018 в 12:35

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

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

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

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

0
ответ дан 24 May 2018 в 12:35
  • 1
    Это не совсем оптимально, вызывая wc -l в файле, вы обрабатываете его дважды, тогда как sed или tail обрабатывают его только один раз. – yo' 25 January 2014 в 00:36

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

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 May 2018 в 12:35

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

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