linux下shell脚本切割大文件为多个小txt文件
2019/10/10/17:46:41 阅读:2493 来源:谷歌SEO算法 标签:
自媒体
小编有一个几百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万行小文件
- #!/bin/bash
- bigfile="1.txt"
- split-l1000000$bigfiletext
- currdir=1
- forsmallfilein`ls|grep"text*"`
- do
- linenum=`wc-l$smallfile|awk'{print$1}'`
- n1=1
- file=1
- savedir="$smallfile$currdir"
- if[!-d"$savedir"]
- then
- mkdir$savedir
- fi
- while[$n1-lt$linenum]
- do--phpfensi.com
- n2=`expr$n1+9999`
- sed-n"${n1},${n2}p"$smallfile>$savedir/text$file.txt
- n1=`expr$n2+1`
- file=`expr$file+1`
- done
- currdir=`expr$currdir+1`
- done
热门评论