linux下shell脚本切割大文件为多个小txt文件

sunshine技术博客 sunshine技术博客

小编有一个几百GB的txt文件了,里面存储的是电话号码,那么这些电话号码小编希望分成小文件了,下面就来给各位介绍利用shell脚本切割大文件为多个小txt文件例子.

解决方法:

1.先使用split命令切割大文件,每个小文件保存100万行.

split 参数:

-b:后面可接欲分割成的档案大小,可加单位,例如 b,k,m 等.

-l:以行数来进行分割;

#按每个文件1000行来分割除

split -l 1000 httperr8007.log httperr

httpaa,httpab,httpac ........

#按照每个文件100K来分割

split -b 100k httperr8007.log http

httpaa,httpab,httpac ........

2.遍历所有100万行文件,逐个新建目录再切割成1万行小文件

  1. #!/bin/bash
  2. bigfile="1.txt"
  3. split-l1000000$bigfiletext
  4. currdir=1
  5. forsmallfilein`ls|grep"text*"`
  6. do
  7. linenum=`wc-l$smallfile|awk'{print$1}'`
  8. n1=1
  9. file=1
  10. savedir="$smallfile$currdir"
  11. if[!-d"$savedir"]
  12. then
  13. mkdir$savedir
  14. fi
  15. while[$n1-lt$linenum]
  16. do--phpfensi.com
  17. n2=`expr$n1+9999`
  18. sed-n"${n1},${n2}p"$smallfile>$savedir/text$file.txt
  19. n1=`expr$n2+1`
  20. file=`expr$file+1`
  21. done
  22. currdir=`expr$currdir+1`
  23. done

相关广告
  • linux下shell脚本切割大文件为多个小txt文件 linux下shell脚本切割大文件为多个小txt文件 linux下shell脚本切割大文件为多个小txt文件
相关阅读

linux下shell脚本切割大文件为多个小txt文件

2019/10/10 17:46:41 | 谷歌SEO算法 | 自媒体