2017-02-06 7 views
0

У меня есть файл дампа db размером более 5 гигабайт, и я ищу для быстрого редактирования базы данных create и использования команды базы данных. Эта дампа предоставляется мне.Эффективное редактирование содержимого в верхней части очень большого файла в Linux

Я использовал vim, чтобы сделать это из командной строки, но загрузка занимает некоторое время. Я могу использовать less, чтобы читать очень быстро. Есть ли способ редактировать файл без необходимости ждать несколько минут для загрузки полного файла в vim? Это может быть параметр, переданный vim, или другой общий способ редактирования файлов из командной строки.

Я ищу общее решение, которое я могу применить и к другим крупным файлам, поэтому мне нужна команда linux, которая позволит мне быстро отредактировать верхнюю часть файла.

+0

@Meninx, другие вопрос, который вы предлагаете, конкретно указывает, что им не нужно редактировать файл. Этот вопрос нуждается в редактировании. –

+0

Изменяет ли ваше изменение общий размер региона? Если да, то это в верхней или нижней части файла? –

+0

@CharlesDuffy, да, он меняет общий размер, в верхнюю часть файла. –

ответ

0

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

cat file_with_create_cmd db_dump > new_dump 

Если вы хотите использовать, что в последующих командах вместо того, чтобы писать в файл, вы можете использовать process substitution:

process_dump <(cat file_with_create_cmd db_dump) 
+0

Я тоже думал об этом подходе, думал, что понадобится «split», а затем отредактирует, затем конкат, но не заглянул, сколько времени займет время разделения. Это то, о чем вы тоже думаете? Или у вас есть что-то еще? –

+0

Вы просто хотите добавить команды create * сверху * дампа? – hek2mgl

+0

@VenomFangs, 'split' является излишним. Если вы только изменяете содержимое внутри первого 1kb, используйте 'dd', чтобы скопировать только первый 1kb (тривиальный!), Отредактируйте это, а затем dd все *, но * первый 1kb сверху. Таким образом, единственная часть, которую вы пишете более одного раза, - это сегмент, который вы редактируете (сначала записывается в исходном состоянии, а затем второй раз вашим редактором после внесения изменений). –