输出特定行巨大的文本文件

时间:2011-11-17 11:35:13

标签: bash text

我有一个300mb的sql转储,它在特定行上给我一个错误。

但该行位于文件的中间。什么是最好的方法?

head -n middleLine dump.sql > output

或者我只能输出我需要的线路吗?

8 个答案:

答案 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"