【Linux】一步一步学Linux——split命令(59)

00. 目录

01. 命令概述

split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

在默认情况下将按照每1000行切割成一个小文件 。

15 分钟之后,我要去朋友家聚会。我打算从我的台式机上把一部 700MB 大小的美国大片拷贝出来,带到朋友家去看,可是我的两个优盘都只有 512MB,这让我如何是好?

别急,用 10 分钟赶快来认识一下我们的 split 拆分小能手,一切问题将迎刃而解。当遇到大文件而苦不堪言的时候,split 就会像天使一样解救我们于水火之中

02. 命令格式

split [OPTION] [INPUT [PREFIX]]

03. 常用选项

       把  输入文件  INPUT  按 固定大小 的 文件片 PREFIXaa, PREFIXab,
       ... 输出; 缺省的 PREFIX 是 `x'. 如果 没有 指定 INPUT, 或 INPUT
       是 -, 就从 标准输入 读取 数据.

       -b, --bytes=SIZE
              输出文件 大小 定为 SIZE 字节
       -C, --line-bytes=SIZE
              输出文件 大小 定为 最多 SIZE 字节 的 行
       -l, --lines=NUMBER
              输出文件 大小 定为 NUMBER 行
       -d 使用数字而不是字母作为切割后的小文件的后缀;
	   -v 显示详细的处理信息
       -NUMBER
              同 -l NUMBER
       --verbose
              在 打开 每一个 输出文件 之前, 把 诊断信息 送往 标准错误
       --help 显示 帮助信息, 然后 结束
       --version
              显示 版本信息, 然后 结束
       指定  SIZE  时  可以  使用 倍乘后缀: b 是 512, k 是 1K, m 是 1
       Meg.
       
        b: 512(blocks)
        K: 1024(kibiBytes)
        KB: 1000(kiloBytes)
        M: 1024*1024(mebiBytes)
        MB: 1000*1000(megaBytes)
        G: 1024*1024*1024(gibiBytes)
        GB: 1000*1000*1000(gibaBytes)
        T, P, E, Z, Y

04. 参考示例

4.1 指定行数来切割

[deng@localhost test]$ split -l 30 passwd 
[deng@localhost test]$ ls
passwd  xaa  xab

默认文件名是xaa,xbb排序的

4.2 指定文件大小来切割

[deng@localhost test]$ split -b 1b passwd   
[deng@localhost test]$ ls
passwd  xaa  xab  xac  xad  xae
[deng@localhost test]$ ls -lh
总用量 24K
-rw-r--r-- 1 deng deng 2.4K 7月  24 15:32 passwd
-rw-rw-r-- 1 deng deng  512 7月  24 15:39 xaa
-rw-rw-r-- 1 deng deng  512 7月  24 15:39 xab
-rw-rw-r-- 1 deng deng  512 7月  24 15:39 xac
-rw-rw-r-- 1 deng deng  512 7月  24 15:39 xad
-rw-rw-r-- 1 deng deng  328 7月  24 15:39 xae
[deng@localhost test]$ 

文件名可以不设置,系统默认新文件以字母x开头,前面每个文件大小是512个字节

4.3 合并文件

[deng@localhost test]$ cat xa* > passwd1
[deng@localhost test]$ ls -l passwd passwd1
-rw-r--r-- 1 deng deng 2376 7月  24 15:32 passwd
-rw-rw-r-- 1 deng deng 2376 7月  24 15:41 passwd1
[deng@localhost test]$ 

4.4 综合示例

生成一个大小为100KB的测试文件

[deng@localhost test]$ dd if=/dev/zero bs=100k count=1 of=data.file
记录了1+0 的读入
记录了1+0 的写出
102400字节(102 kB)已复制,0.00037411 秒,274 MB/秒
[deng@localhost test]$ 

使用split命令将上面创建的date.file文件分割成大小为10KB的小文件

[deng@localhost test]$ split -b 10k data.file
[deng@localhost test]$ ls
data.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj
[deng@localhost test]$ ls -l
总用量 220
-rw-rw-r-- 1 deng deng 102400 7月  24 15:42 data.file
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xaa
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xab
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xac
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xad
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xae
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xaf
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xag
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xah
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xai
-rw-rw-r-- 1 deng deng  10240 7月  24 15:43 xaj
[deng@localhost test]$ 

文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度

[deng@localhost test]$ split -b 10k data.file -d -a 3
[deng@localhost test]$ ls
data.file  x000  x001  x002  x003  x004  x005  x006  x007  x008  x009
[deng@localhost test]$ 

为分割后的文件指定文件名的前缀

文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度

[deng@localhost test]$ split -b 10k data.file -d -a 3 split_file
[deng@localhost test]$ ls
data.file      split_file003  split_file007  x001  x005  x009
split_file000  split_file004  split_file008  x002  x006
split_file001  split_file005  split_file009  x003  x007
split_file002  split_file006  x000           x004  x008
[deng@localhost test]$ 

使用-l选项根据文件的行数来分割文件,例如把文件分割成每个包含10行的小文件

[deng@localhost test]$ split -l 10 data.file 

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值