巧用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/$/\nwaitfor delay '00:00:10'/g" q_newaa>q_newaa_new

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

 

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

  

 

转载于:https://www.cnblogs.com/Wison-Ho/p/6019272.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值