linux 下的 split 和 cat 命令

split 命令

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

选项:
-b:值为每一输出档案的大小,单位为 byte。
-C:每一输出档中,单行的最大 byte 数。
-d:使用数字作为后缀。 -l:值为每一输出档的列数大小。

实例

  • 首先生成一个大小为 10KB 的测试文件 big.txt:
dd if=file.txt bs=10k count=1 of=big.txt

linux 下的 split 和 cat 命令

参数解释:
if= 文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of= 文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
bs=bytes:同时设置读入 / 输出的块大小为 bytes 个字节。
 count= 复制次数
例如:dd if=/dev/zero of=/home/file bs=100k count=1000

这里 dd 用来测试磁盘 I/O 性能,上面这样写是测试向磁盘(路径为:/home/file)写入一个 100k 文件,写入次数为 1000 次,通过系统完成操作所需时间来判断磁盘性能。

  • 使用 split 命令将上面创建的 big.txt 文件分割成大小为 1KB 的小文件:
split -b 1k big.txt

linux 下的 split 和 cat 命令

  • 文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用 -d 参数,同时可以使用 -a length 来指定后缀的长度:
split -b 1k big.txt -d -a 3

linux 下的 split 和 cat 命令

  • 为分割后的文件指定文件名的前缀:
split -b 1k big.txt -d -a 3 small_

linux 下的 split 和 cat 命令

  • 使用 -l 选项根据文件的行数来分割文件,例如把文件分割成每个包含 10 行的小文件:
  • 先读出 big.txt 文件一共有多少行
wc -l big.txt

linux 下的 split 和 cat 命令

  • 再利用 split 命令
split -l 10 big.txt -d -a 4 small_

将 文件 BLM.txt 分成若干个小文件,每个文件 10 行 (-l 10),文件前缀为 small_ ,系数不是字母而是数字(-d),后缀系数为四位数(-a 4)
linux 下的 split 和 cat 命令

cat 命令

在 Linux 下用 cat 进行文件合并:

cat small_* > large_file.txt

linux 下的 split 和 cat 命令

将 a.txt 的内容输入到 b.txt 的末尾

cat a.txt >> b.txt