Linux 分割文件和数据

分割文件和数据工具

在一些状况下,须要把文件分割成多个小文件,好比为:提升可读性,生成日志,经过E--mail发送文件,如下会看到将文件分隔成不一样大小的多种方法。测试

如下,咱们使用dd命令建立一个大小为1G的文件来作测试文件。日志

# dd if=/dev/zero of=/tmp/data.log bs=1024M count=1

建立好的data.log文件,咱们存储在了/tmp目录下。code

下面适用split命令对data.log文件进行分割。字符串

# split -b 100M data.log 
# ls
data.log  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak

命令解析:上面的命令将data.log文件分割成多个文件,每一个文件大小为100M。这些文件以xaa,xab,xac..的形式命名,这代表它们都有一个字母后缀。若是想用数字为后缀,能够另外使用-d参数。此外,使用-a参数能够指定后缀长度。it

# split -b 100M -d -a 4 data.log
# ls 
data.log  x0000  x0001  x0002  x0003  x0004  x0005  x0006  x0007  x0008  x0009  x0010

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

# split -b 100M data.log -d -a 4 data_
# ls  
data_0000  data_0001  data_0002  data_0003  data_0004  data_0005  data_0006  data_0007  data_0008  data_0009  data_0010  data.log

若是想经过行数来分割文件,可使用-l参数命名

# split -l 10 data.log

命令解析:上面命令把data.log文件分割成多个文件,每一个文件10行内容,由于咱们使用dd生成的文件,因此该文件内容是0行,你能够本身建立一个50行数据的文件作测试(文件若是很大,分割的文件数会不少,这种状况能够把-l参数的值设置大些。)数据

另一个有趣的工具,csplit,它能依据指定的条件和字符串匹配对日志文件进行分割。csp

csplit是split工具的一个变体。split只能根据文件大小与行数进行分割,而csplit能够根据文本自身的特色进行分割,好比:是否存在某个单词或文本内容均可以做为分割的条件,这里就不详细说明了,有兴趣能够自行查看帮助。

相关文章
相关标签/搜索