Назад | Перейти на главную страницу

Как я могу увидеть, что находится в строке 149351 большого файла?

Я пытаюсь импортировать большой файл дампа MySQL и получаю последовательную ошибку в определенной строке 149 351 (из 4207442). Я бы хотел посмотреть, что это за линия.

Я нашел лучший способ сделать это:

head -149351 dump.sql | tail

Однако это очень медленно. Я попытался загрузить файл в vi, но он не смог обработать такой большой файл. Я использую Windows XP и использую cygwin.

sed -n '149351p' dump.sql

может быть немного быстрее, чем комбинации голова / хвост (но может и нет). Vartec прав; Нет более быстрого способа, чем прочитать хотя бы первые 149351 строку.

Вы можете увидеть отдельную строку с помощью следующей команды:

tail -n+<line number> <file>|head -n1

в твоем случае: хвост -n + 149351 dump.sql | голова -n1

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

Я бы рекомендовал использовать команду split, чтобы разбить этот огромный дамп на более управляемые части:

split -l20000 mysql.dump mysql.dump.

Создает файлы с именами mysql.dump.aa, mysql.dump.ab, .... Каждый файл будет содержать 20000 строк - инструменты редактирования должны легко обрабатывать эти небольшие файлы!

После того, как вы устранили проблему, легко их объедините:

cat mysql.dump.* > mysql.dumptest

или

cat mysql.dump.* | mysqlimportcommand

Я обычно просто зажигаю TextPad, даже в файлах размером 1 ГБ.

Ctrl + G - это меню «Перейти», в котором вы можете выбрать номер строки.

Если строки имеют переменную длину, действительно нет более быстрого способа, затем сканирование через первый 149351 (это именно то, что вы делаете с "head").

Удивленный никто не предложил:

grep -n 149351 dump.sql

Я удивлен, что из его окон никто не предложил

get-content -readcount 0 | выберите объект-индекс 149350

Конечно, в vi вы можете установить номер строки, используя:

:set number

а затем перейдите к строке 149351, используя:

:149351

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

vi +36 blah

надеюсь, это поможет...

Откройте это с помощью nano (с -w), и после открытия нажмите CTRL _ и введите номер строки, к которой нужно перейти.