Вывести конкретную строку с огромным текстовым файлом У меня есть дамп sql с 300mb, который дает мне ошибку на определенной строке. Но эта строка находится в середине файла. Каков наилучший подход? head -n middleLine dump.sql > output? Или я могу выводить только строку, которая мне нужна? Ответ 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"
Ответ 2 Если файл длинный, рассмотрите возможность использования sed -n 'X{p;q}' file Где X - номер строки. Он перестанет читать файл после достижения этой строки.
Ответ 3 Если sed слишком медленный для вашего вкуса, вы также можете использовать cat $THE_FILE | head -n $DESIRED_LINE | tail -n 1
Ответ 6 Это также можно сделать с помощью Perl: perl -wnl -e '$. == 4444444 and print and exit;' FILENAME.sql 4444444 - номер строки, которую вы хотите напечатать.
Ответ 8 Если вы знаете фразу на этой строке, я бы использовал grep. Если фраза "errortext" используется: $ cat dump.sql | grep "errortext"