我有一个300mb的sql转储,它在特定行上给我一个错误。
但该行位于文件的中间。什么是最好的方法?
head -n middleLine dump.sql > output
?
或者我只能输出我需要的线路吗?
答案 0 :(得分:42)
您可以使用sed -n -e 123456p your.dump
打印第123456行
答案 1 :(得分:23)
如果文件很长,请考虑使用
sed -n 'X{p;q}' file
其中X是行号。它会在到达该行后停止读取文件。
答案 2 :(得分:8)
如果sed
对您的品味太慢,您也可以使用
cat $THE_FILE | head -n $DESIRED_LINE | tail -n 1
答案 3 :(得分:3)
您可以使用sed:
sed -n "x p" dump.sql
其中x
是行号。
答案 4 :(得分:3)
这可能对您有用:
sed 'X!d;q' file
其中X是行号。
答案 5 :(得分:3)
这也可以通过Perl完成:
perl -wnl -e '$. == 4444444 and print and exit;' FILENAME.sql
4444444是您要打印的行号。
答案 6 :(得分:2)
你也可以试试awk
:
awk 'NR==YOUR_LINE_NO{print}' file_name
答案 7 :(得分:-4)
如果您知道该行上的短语,我会使用grep
。如果短语是“errortext”,请使用:
$ cat dump.sql | grep "errortext"