Linux文件的分割和合并

今天逛博客看到一篇不错的文章: http://syzxlyx-cu.iteye.com/blog/1683822

自己也man了一下命令详细,现总结如:

split文件分割

$ ls -lh testfile 
-rw-r--r-- 1 80 admin 2.8M Sep 23 07:43 testfile    # testfile 2.8M


常用分割方式:
split -b 500k  testfile  pec  

# -b参数表示,按大小分割,每个文件500k (其他可用的大小参数还有b(字节),m(兆))
# testfile 表示需要分割的文件
# pec 表示分割后的文件前缀(默认是x)

我们看下执行结果
$ ls -lh
total 5.6M
-rw-r--r-- 1 80 admin 500K Sep 23 08:09 pecaa
-rw-r--r-- 1 80 admin 500K Sep 23 08:09 pecab
-rw-r--r-- 1 80 admin 500K Sep 23 08:09 pecac
-rw-r--r-- 1 80 admin 500K Sep 23 08:09 pecad
-rw-r--r-- 1 80 admin 500K Sep 23 08:09 pecae
-rw-r--r-- 1 80 admin 333K Sep 23 08:09 pecaf
-rw-r--r-- 1 80 admin 2.8M Sep 23 07:43 testfile


默认后缀是字母,可以使用-d参数切换为数字
默认后缀是两位,所以若是字母,最多可以分割成26*26个文件,可以通过-a参数指定后缀个数
$ split -db 500k  testfile  pec
$ ls -lh
total 5.6M
-rw-r--r-- 1 80 admin 500K Sep 23 08:11 pec00
-rw-r--r-- 1 80 admin 500K Sep 23 08:11 pec01
-rw-r--r-- 1 80 admin 500K Sep 23 08:11 pec02
-rw-r--r-- 1 80 admin 500K Sep 23 08:11 pec03
-rw-r--r-- 1 80 admin 500K Sep 23 08:11 pec04
-rw-r--r-- 1 80 admin 333K Sep 23 08:11 pec05
-rw-r--r-- 1 80 admin 2.8M Sep 23 07:43 testfile


若是文本文件还有其他分割方式(按行分割):
split -C 500k  testfile pec   # 按行分割,每个文件的最大不超过500k
split -l 100 testfile pec     # 按行分割,每个文件100行
 

cat文件合并
cat pec* > new_testfile




猜你喜欢

转载自diaocow.iteye.com/blog/1683992