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