【问题标题】:How to search only lines with certain length in text file如何在文本文件中仅搜索具有一定长度的行
【发布时间】:2013-01-24 14:18:40
【问题描述】:

我有一个包含两列和大约 1700 万行的大型分隔 txt 文件。我已将其导入数据库,错误地表中的一列比文件中的文本短。即 varchar (4000) 而不是 varchar (7000)

大约 48,000 条文本较长的记录已被切割成 40k 字符。

如何在不重新导入文件的情况下替换这些文件?

我正在考虑是否能够从 txt 文件中仅过滤具有特定长度的行,然后将其删除,然后尝试插入更新较长的行。

但是如何选择文本文件中具有特定长度的所有行?或者哪个程序可以做到这一点。

我正在使用 MySQL DB 和 emEditor 进行大文件文本编辑。

谢谢。

【问题讨论】:

    标签: mysql database search text import


    【解决方案1】:

    取决于它与其他基础设施的连接方式,我的猜测是处理它的最简单和最安全的方法就是删除并重新导入表......

    如果由于某种原因不是一个选项,我会编写一个遍历文本文件的脚本,并且要么只是无条件更新大文本字段,要么检查它的长度是否需要更新(即 > 4000 个字符)

    如果自导入数据后表可能发生任何更改,请务必检查将被覆盖的内容以及记录是否确实是您要更新的记录(取决于表的索引方式)

    希望这能给你一些起点。

    你有我的同情,在那里做过......

    【讨论】:

    • 我最终运行了一个脚本来从 txt 文件中提取较长的行,然后执行替换更新查询以覆盖具有相同 ID 的所有行,尽管从 24gb 文本文件中提取行花费了 4 个多小时。
    【解决方案2】:

    您还可以构建一个查询,返回该列包含 4000 字节的每条记录。 哪些可能是您导入文件时被剪切的那些。 有了这组记录,如果您在数据库表 ofc 上有行引用,您可以尝试在文件中找到它们。如果数量太多,一个简单的脚本就可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 2013-08-08
      • 1970-01-01
      相关资源
      最近更新 更多