分割文件和数据工具
在一些状况下,须要把文件分割成多个小文件,好比为:提升可读性,生成日志,经过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能够根据文本自身的特色进行分割,好比:是否存在某个单词或文本内容均可以做为分割的条件,这里就不详细说明了,有兴趣能够自行查看帮助。