Linux通过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 -l 1000000 $bigfile text currdir=1 for smallfile in `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 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 上面就是Linux使用shell脚本将txt大文件切割成小文件的方法介绍了,txt文件太大的话可使用本文的方法进行切割处理。
Linux通过shell脚本将txt大文件切割成小文件的方法