Linux提供了spilt命令来切割文件,我们可以按照行、文件大小对一个大的文件进行切割。先来看看这个命令的帮助:
[iteblog@iteblog iteblog]$ split --help Usage: split [OPTION]... [INPUT [PREFIX]] Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default size is 1000 lines, and default PREFIX is `x'. With no INPUT, or when INPUT is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -a, --suffix-length=N use suffixes of length N (default 2) -b, --bytes=SIZE put SIZE bytes per output file -C, --line-bytes=SIZE put at most SIZE bytes of lines per output file -d, --numeric-suffixes use numeric suffixes instead of alphabetic -l, --lines=NUMBER put NUMBER lines per output file --verbose print a diagnostic just before each output file is opened --help display this help and exit --version output version information and exit SIZE may be (or may be an integer optionally followed by) one of following: KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y. Report split bugs to bug-coreutils@gnu.org GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> For complete documentation, run: info coreutils 'split invocation'
从帮助文件输出的信息我们可以看出,split命令支持两种特别的切割:按行和按大小。其中按大小切又可以分为两种:按固定大小切,这种模式下切出的文件大小和用户传进来的参数大小一致,但会出现一行文本被拆成几行;按最接近大小切,不会出现一行文本被切成几行的情况。
下面我们来看看如何使用split命令。假如我们需要按行切,可以用下面命令实现:
[iteblog@iteblog iteblog]$ split -l 100 test
这样会产生很多个小文件,并且每个小文件里面的内容最多为100行;
如果我们需要按照大小切,可以用下面命令实现:
[iteblog@iteblog iteblog]$ split -b 1m test
这样会产生很多大小为1MB的文件,如果我们不想一行数据被切割,那么可以使用下面命令实现:
[iteblog@iteblog iteblog]$ split -C 1m test
结果也是会产生很多的大小小于1MB的文件,而且一条记录不会被拆成多行。
split默认产生的文件格式不太好,我们可以自定义输出文件的后缀等信息:
[iteblog@iteblog iteblog]$ split -C 1m result -d -a 4 iteblog
-d参数是使用数字替代字母当作后缀;-a指的是采用多少位数字或字母当做后缀;最后面的iteblog代表切割出来文件的前缀。这样产生出来的文件名称为iteblogxxxx
,其中x代表一位数字。
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Linux切割文件命令:split】(https://www.iteblog.com/archives/1545.html)