csplit命令 – 分割文件

353次阅读
没有评论

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

语法参数: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 文件。

参考实例

将文本文件 filename 以第 2 行为分界点切割成两份:

[root@linuxvip ~]# csplit filename 2

将文本文件 filename 以 120 行为分界点切割成 2 份,并指定输出文件名的位数为 3:

[root@linuxvip ~]# csplit -n 3 filename 120

将文本文件 textfile 以 120 行为分界点切割成 2 份,并指定输出文件名的前缘为 fileName 位数为 3:

[root@linuxvip ~]# csplit -f fileName testfile 120

将文件 filename 以 10 行为单位分割 8 次,并指定输出文件名的格式 :

[root@linuxvip ~]# csplit -b "myfile%o% filename 10 {8}

将文本文件 filename 以每 20 行为单位分割:

[root@linuxvip ~]# csplit filename 20 {*} 

把文件以字符串 ”Chapter X” 为分界符,分成两部分:

[root@linuxvip ~]# csplit filename /"Chapter X"/

正文完