我正在尝试导入一个大型 MySQL 转储文件,并且在某行 149,351(共 4207442 行)上出现一致错误。我想看看那条线是什么。
我发现这样做的最好方法是这样的:
head -149351 dump.sql | tail
但是,这非常缓慢。我尝试将文件加载到 中vi
,但它无法处理那么大的文件。我在 Windows XP 上并且有 cygwin。
我正在尝试导入一个大型 MySQL 转储文件,并且在某行 149,351(共 4207442 行)上出现一致错误。我想看看那条线是什么。
我发现这样做的最好方法是这样的:
head -149351 dump.sql | tail
但是,这非常缓慢。我尝试将文件加载到 中vi
,但它无法处理那么大的文件。我在 Windows XP 上并且有 cygwin。
可能比头/尾组合稍快(但可能不是。) Vartec 是正确的;没有比至少阅读前 149351 行更快的方法了。
您可以使用以下命令查看单独的行:
在你的情况下:tail -n+149351 dump.sql|head -n1
该命令从第 149351 行开始对文件进行尾部处理,并使用head命令仅显示尾部结果的第一行。
我建议使用 split 命令将这个巨大的转储分成更易于管理的部分:
将创建名称为 mysql.dump.aa、mysql.dump.ab、...的文件。每个文件将包含 20000 行 - 编辑工具应该能够轻松处理这些小文件!
解决问题后,轻松地重新组合它们:
或者
我通常只是启动TextPad,即使是 1GB 文件。
Ctrl+G 是 Go To 菜单,您可以在其中选择行号。
如果行的长度可变,则确实没有更快的方法,然后扫描第一个 149351(这正是您使用“
head
”所做的)。惊讶没有人建议:
自从它的窗户以来,我很惊讶没有人建议
获取内容-readcount 0 | 选择对象-索引 149350
当然,在 vi 中,您可以使用以下方法设置行号:
然后使用以下命令转到第 149351 行:
或者,您可以使用以下命令在特定行号处启动 vi:
希望有帮助...
nano
使用(with -w)打开它,打开后点击CTRL _
并输入要转到的行号。