代码之家  ›  专栏  ›  技术社区  ›  Eric Johansson

编辑9GB.sql文件

  •  3
  • Eric Johansson  · 技术社区  · 16 年前

    我有一个“稍大”的SQL脚本保存为文本文件。它的总容量为8.92GB,所以有点像野兽。

    我必须在这个文件中进行一些搜索和替换(特别是,将所有非空值更改为空,这样所有字段都可以为空),然后执行darned操作。有人对文本编辑器有什么建议可以做到这一点吗?

    另一种解决这个问题的方法是编写一个程序,读取一个块,替换我需要的东西,然后将它保存到一个新文件中,但是我宁愿使用一些标准的方法来完成这个任务。

    它也不能解决在SQL Server Management Studio中打开Beast来执行Darned操作的问题…

    有什么想法吗?

    谢谢, 埃里克

    5 回复  |  直到 16 年前
        1
  •  6
  •   Joachim Sauer    16 年前

    sed 正是为这种工作而建造的。

    sed -e 's/\( NOT\)\? NULL/ NOT NULL/g' < input.sql > output.sql
    

    塞德 也是 available on Windows .

    编辑:我修改了我的陈述以避免产生 NOT NOT NULL 当输入已经包含 NOT NULL .

        2
  •  1
  •   Joachim Sauer    16 年前

    使用 sed ,或者简单地 perl -pne 's/foo/bar/' file.sql > newfile.sql (foo将替换为bar)。

    要加载SQL,请使用osql.exe,它应该位于c:\program files下的某个位置…\sql server\bin

        3
  •  0
  •   Andomar    16 年前

    您可以使用映射文件的编辑器,而不是将文件加载到内存中。像超级编辑或记事本++,我相信还有更多。

    这仍然很慢,但功能很好。

        4
  •  0
  •   Vino    16 年前

    您应该考虑使用Perl。它执行就地文本替换。使用它作为

    perl -pie "s/ NOT NULL/ NULL/g" hugefile.sql
    
        5
  •  0
  •   Scot Hauder    16 年前

    小心那把斧头,尤金……你不想砍掉任何不应该保持为空的where子句。