红联Linux门户
Linux帮助

linux中split命令的重要用途------文件分割

发布时间:2016-12-25 10:13:45来源:blog.csdn.net/stpeace作者:stpeace
最近准备写个文件分割的工具,跟同事交流后,发现Linux早已提供了这个命令,来一起看下:
taoge@localhost Desktop> ls  
a.txt  
taoge@localhost Desktop> cat a.txt   
3576661317  
3577352199  
3577724088  
3578367381  
3578587869  
3579287088  
3581127558  
3582079011  
3582736026  
3585019998  
taoge@localhost Desktop> filename="a.txt"  
taoge@localhost Desktop> rm test_* -f  
taoge@localhost Desktop> total=`cat $filename | wc -l`  
taoge@localhost Desktop> onefile=$(( $total / 3 + 1))  
taoge@localhost Desktop> split -l $onefile $filename -d -a 4 "test_"  
taoge@localhost Desktop>   
taoge@localhost Desktop>   
taoge@localhost Desktop> ls  
a.txt  test_0000  test_0001  test_0002  
taoge@localhost Desktop> wc -l test*  
4 test_0000  
4 test_0001  
2 test_0002  
10 total  
taoge@localhost Desktop>   
 
注意,如下命令我是批量赋值到linux命令终端的:
filename="a.txt"  
rm test_* -f  
total=`cat $filename | wc -l`  
onefile=$(( $total / 3 + 1))  
split -l $onefile $filename -d -a 4 "test_"  
 
如果你喜欢,搞个脚本肯定是最好的啦。
 
我们回头看一下,上述命令把a.txt文件按行等分地拆成了3个文件,最重要的命令是:split -l $onefile $filename -d -a 4 "test_" ,其中-l表示按行,onefile是行数,filename是文件名,-d表示拆分后文件的后缀采用数字的形式,如0002,-a是规定这个数字的长短,test_是拆分后文件的前缀。很好懂。
 
如果要按照文件字节大小拆分,那该怎么搞起呢?很简单:split -b 5k a.txt -d -a 3 good_
 
split非常非常实用,在很多实际开发中,经常需要对文件进行拆分,然后分开处理。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27236.html