Подтвердить что ты не робот

Вывести конкретную строку с огромным текстовым файлом

У меня есть дамп sql с 300mb, который дает мне ошибку на определенной строке.

Но эта строка находится в середине файла. Каков наилучший подход?

head -n middleLine dump.sql > output?

Или я могу выводить только строку, которая мне нужна?

4b9b3361

Ответ 1

Вы можете использовать sed -n -e 123456p your.dump для печати строки 123456

Ответ 2

Если файл длинный, рассмотрите возможность использования

sed -n 'X{p;q}' file

Где X - номер строки. Он перестанет читать файл после достижения этой строки.

Ответ 3

Если sed слишком медленный для вашего вкуса, вы также можете использовать

cat $THE_FILE | head -n $DESIRED_LINE | tail -n 1

Ответ 4

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

sed -n "x p" dump.sql

где x - номер строки.

Ответ 5

Это может сработать для вас:

 sed 'X!d;q' file

где X - номер строки.

Ответ 6

Это также можно сделать с помощью Perl:

perl -wnl -e '$. == 4444444 and print and exit;' FILENAME.sql

4444444 - номер строки, которую вы хотите напечатать.

Ответ 7

Вы также можете попробовать awk как:

awk 'NR==YOUR_LINE_NO{print}' file_name

Ответ 8

Если вы знаете фразу на этой строке, я бы использовал grep. Если фраза "errortext" используется:

$ cat dump.sql | grep "errortext"