百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> linux下shell脚本切割大文件为多个小txt文件
分享文章到:

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

发布时间:01/15 来源: 浏览: 关键词:
小编有一个几百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 -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

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有8人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板