我如何才能看到大文件第 149351 行的内容?

我如何才能看到大文件第 149351 行的内容?

我正在尝试导入一个大型 MySQL 转储文件,并在第 149,351 行(共 4207442 行)上收到一致错误。我想看看那一行是什么。

我发现最好的方法是这样的:

head -149351 dump.sql | tail

但是,这非常慢。我尝试在 中加载文件vi,但它无法处理这么大的文件。我在 Windows XP 上安装了 cygwin。

答案1

sed -n '149351p' dump.sql

可能比头/尾组合稍微快一点(但也可能不是)。Vartec 是正确的;没有比阅读至少前 149351 行更快的方法了。

答案2

您可以使用以下命令查看单独的行:

tail -n+<line number> <file>|head -n1

在你的情况下:尾部-n + 149351 dump.sql | head -n1

该命令跟踪从第 149351 行开始的文件,并使用命令仅显示尾部结果的第一行。

答案3

我建议使用 split 命令将巨大的转储分解为更易于管理的部分:

split -l20000 mysql.dump mysql.dump.

将创建名为 mysql.dump.aa、mysql.dump.ab 等的文件。每个文件包含 20000 行 - 编辑工具应该能够轻松处理这些小文件!

一旦问题解决,就可以轻松地重新组合它们:

cat mysql.dump.* > mysql.dumptest

或者

cat mysql.dump.* | mysqlimportcommand

答案4

如果行的长度不定,那么确实没有更快的方法,然后先扫描 149351(这正是您对“ head”所做的)。

相关内容