【Linux】一步一步学Linux——split命令(59)
2019-07-24 15:57
801 查看
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
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命令 split 文件切割
- 利用Linux下的split命令切分大文件并合并文件
- 【Linux】一步一步学Linux——nl命令(43)
- 【Linux】一步一步学Linux——which命令(45)
- 【Linux】一步一步学Linux——tr命令(55)
- linux命令---split
- Linux切割命令split ,可以切割日志文件,文本文件
- 【点滴】LINUX之split命令
- linux中split命令的重要用途------文件分割
- linux split命令参数及用法详解---linux分割文件命令
- linux下的split 命令(将一个大文件根据行数平均分成若干个小文件)
- linux 命令——文件分割与合并 split+cat
- 【Linux】一步一步学Linux——mkdir命令(21)
- 【Linux】一步一步学Linux——dirname命令(35)
- csplit命令_Linux csplit 命令用法详解:将一个大文件分割成小的碎片文件
- Linux系统下使用split命令分割大文件 (转载)
- Linux split命令参数及用法详解---linux分割文件命令
- Linux下的split 命令(将一个大文件根据行数平均分成若干个小文件)
- Linux(CentOS)用split命令分割文件
- Linux——note shell常用命令 cut 、sort、unqi、tee、tr、split和shell中连接符&& ||