csplit命令-分割文件

csplit命令的英文全称是“context split”,该命令用于将一个大文件分割成小的碎片,并且将分割后的每个碎片保存成一个文件。碎片文件的命名类似“xx00”,“xx01”。csplit命令是[[split命令–文件分割]]的一个变体,split只能够根据文件大小或行数来分割,但csplit能够根据文件本身特点来分割文件。

常用参数
描述

-b<输出格式>或--suffix-format=<输出格式>

预设的输出格式其文件名称为xx00,xx01等,用户可以通过改变<输出格式>来改变输出的文件名

-f<输出字首字符串>或--prefix=<输出字首字符串>

预设的输出字首字符串其文件名为xx00,xx01等,如果制定输出字首字符串为“hello”,则输出的文件名称会变成hello00,hello、01……

-k或--keep-files

保留文件,就算发生错误或中断执行,与不能删除已经输出保存的文件

-n<输出文件名位数>或--digits=<输出文件名位数>

预设的输出文件名位数其文件名称为xx00,xx01……如果用户指定输出文件名位数为“3”,则输出的文件名称会变成xx000,xx001等

-q或-s或--quiet或--silent

不显示指令执行过程

-z或--elide-empty-files

删除长度为0 Byte文件。

默认分割次数为2


# 将文件以第二行为分界点分割成2份
csplit filename 2

# 将文件以100行为分界点分成2份,输入的文件名位数为3位
csplit -n 3 filename 100

# 将文件以100行为分界点分割2次
csplit -f newname filename 100

# 将文件以10行为单位分割8次,并指定输入文件名格式
csplit -b "newfile%o%" filename 10 {8}

# 将文件以每20行为单位分割
csplit filename 20 {*}

# 将文件以指定字符串做分割符
csplit filename '/key word/' '{*}'

最后更新于