本文共 1184 字,大约阅读时间需要 3 分钟。
最近准备写个文件分割的工具, 跟同事交流后, 发现linux早已提供了这个命令,来一起看下:
taoge@localhost Desktop> lsa.txttaoge@localhost Desktop> cat a.txt 3576661317357735219935777240883578367381357858786935792870883581127558358207901135827360263585019998taoge@localhost Desktop> filename="a.txt"taoge@localhost Desktop> rm test_* -ftaoge@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> lsa.txt test_0000 test_0001 test_0002taoge@localhost Desktop> wc -l test* 4 test_0000 4 test_0001 2 test_0002 10 totaltaoge@localhost Desktop>注意, 如下命令我是批量赋值到linux命令终端的:
filename="a.txt"rm test_* -ftotal=`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非常非常实用, 在很多实际开发中, 经常需要对文件进行拆分, 然后分开处理, 在后续文章中, 我们将继续介绍split的重要用途。
转载地址:http://vzwti.baihongyu.com/