zoukankan      html  css  js  c++  java
  • 巧用Linux 命令来拆分Windows下的大文件

    背景:

      今天在处理SQL Server一个同步链的问题,源头目的端比较数据,最后产生了一个300MB的文件,在windows下根本没办法打开。而且就算可以打开,也需要在每1000条命令后,等待10秒钟,避免出现同步链的压力异常增大。

      那么当前最主要的两个问题是:

        1.将大的比对结果的文件拆成小的文件,这样才可以在windows下打开

        2.在每1000行命令后面添加waitfor delay '00:00:10'

    解决过程:

      最开始尝试在windows环境下完成上面的工作,但是一直不得其领,最后只得在Linux下进行解决。

      1.将大的结果文件(q.sql)拆成小文件,比如将每10W行命令放入到一个新的命令:

        采用的命令为:split -l 100000 q.sql q_new

       这样就可以将大文件q.sql拆成多个小文件,类似的命令为q_newaa,q_newab,q_newac,在每个小文件(除最后一个外)中都包含10W行记录

      2.在每个小文件中,每1000行后面添加waitfor delay '00:00:10',可以采用下面的命令实现,以单个文件为例

        sed "0~1000 s/$/ waitfor delay '00:00:10'/g" q_newaa>q_newaa_new

       这样在小文件中的每1000行后面就会新加一行 waitfor delay '00:00:10'

      当然,我们在正式作业的时候,最好是先将上面的第二步应用到大文件,之后再进行拆分。之后再循环执行这些小文件,这样就可以实现最初的目的了

      

  • 相关阅读:
    [C#] 等待启动的进程执行完毕
    C# 、winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示
    Mysql 备份
    Mysql 慢查询日志配置
    Mysql 忘记密码处理配置
    PHP-FPM 慢执行日志、网站隔离配置
    PHP-FPM 设置多pool、配置文件重写
    Nginx 代理配置
    Nginx 301与302配置
    Nginx URL跳转
  • 原文地址:https://www.cnblogs.com/Wison-Ho/p/6019272.html
Copyright © 2011-2022 走看看