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