有时在linux上打包压缩后的文件仍然太大,没法进行传输等其它的处理,此时怎么办?当然你可以选择性地将原来的被压缩文件内容进行手动分开压缩,但这样肯定很麻烦,比如你得区分得很清楚哪些打到哪里包里,要是忘了哪个还不好排查;另外在压缩的时候还要凑着大小来进行打包。其实linux上的split命令能很完美地解决这个问题:一条命令即可搞定本文地址:http://www.04007.cn/article/716.html,未经许可,不得转载.
使用split命令可以将文件按照指定的大小单位进行切割,在默认情况下将按照每1000行切割成一个小文件,也可以按照大小进行切割,切割时可以指定文件名的前缀、后缀、大小:然后传输后使用cat命令进行合并即可。
-a:后缀的长度,默认为2
-b:值为每一个切割输出的文件大小,单位为 byte,可以指定M,K,G等。
-C:每一输出档中,单行的最大 byte 数。
-d:使用数字作为后缀。
-l:值为每一输出档的列数大小。本文地址:http://www.04007.cn/article/716.html,未经许可,不得转载.
#使用示例如下: root@us12~/python# ll total 31068 -rw-r--r-- 1 root root 31809709 Nov 22 19:24 test.tar.gz root@us12~/python# ll -h total 31M -rw-r--r-- 1 root root 31M Nov 22 19:24 test.tar.gz root@us12~/python# split -b 10M -d -a 1 test.tar.gz test.tar.gz. root@us12~/python# ll -h total 61M -rw-r--r-- 1 root root 31M Nov 22 19:24 test.tar.gz -rw-r--r-- 1 root root 10M Nov 22 19:36 test.tar.gz.0 -rw-r--r-- 1 root root 10M Nov 22 19:36 test.tar.gz.1 -rw-r--r-- 1 root root 10M Nov 22 19:36 test.tar.gz.2 -rw-r--r-- 1 root root 345K Nov 22 19:36 test.tar.gz.3 #可以直接一步到位进行解压:cat test.tar.gz.* | tar -zxvf root@us12~/python# cat test.tar.gz.* > test2.tar.gz root@us12~/python# ll -h total 92M -rw-r--r-- 1 root root 31M Nov 22 19:37 test2.tar.gz -rw-r--r-- 1 root root 31M Nov 22 19:24 test.tar.gz -rw-r--r-- 1 root root 10M Nov 22 19:36 test.tar.gz.0 -rw-r--r-- 1 root root 10M Nov 22 19:36 test.tar.gz.1 -rw-r--r-- 1 root root 10M Nov 22 19:36 test.tar.gz.2 -rw-r--r-- 1 root root 345K Nov 22 19:36 test.tar.gz.3 #按行切割文件的示例 root@us12~/python# cat a.txt adcek ree ere haha haha hello world ts ee yes 1234567890 1122334455 789 456 123 root@us12~/python# split -l 3 a.txt a.txt. -d -a 2 root@us12~/python# ll total 31084 -rw-r--r-- 1 root root 81 Nov 22 19:39 a.txt -rw-r--r-- 1 root root 25 Nov 22 19:40 a.txt.00 -rw-r--r-- 1 root root 22 Nov 22 19:40 a.txt.01 -rw-r--r-- 1 root root 34 Nov 22 19:40 a.txt.02 root@us12~/python# cat a.txt.00 adcek ree ere haha haha root@us12~/python# cat a.txt.02 1234567890 1122334455 789 456 123本文地址:http://www.04007.cn/article/716.html,未经许可,不得转载.
在上面的示例中,split可以方便地按行对文本文件进行截取,这对平常如果要对一个批量数据进行处理时很有用,可以使用split进行快速的切割,我记得我曾经在做一个URL切分的时候使用的是sed,相比之下这个split命令更加适合和方便。本文地址:http://www.04007.cn/article/716.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/716.html 未经许可,不得转载. 手机访问本页请扫描下方二维码: