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

bal*_*oth 34 bash text

我有一个300mb的SQL转储,在特定的行上给我一个错误.

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

head -n middleLine dump.sql > output

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

Bas*_*tch 44

您可以使用sed -n -e 123456p your.dump 打印123456行

  • 也许这只是我,但在我看来,跳过`-e`的风格很糟糕.我也经常在`-e`之后引用sed命令,因为它经常包含各种奇怪的:-)字符......我会把它写成`sed -n -e'123,130 p'my.dump`. (2认同)

ata*_*ata 23

如果文件很长,请考虑使用

sed -n 'X{p;q}' file
Run Code Online (Sandbox Code Playgroud)

其中X是行号.到达该行后它将停止读取文件.

  • 在某些系统上,比如osx,它需要一个额外的分号:`sed -n'X {p; q;}'file` (4认同)

Pat*_*ner 8

如果sed你的味道太慢,你也可以使用

cat $THE_FILE | head -n $DESIRED_LINE | tail -n 1
Run Code Online (Sandbox Code Playgroud)