博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

Linux csplit命令详解

Posted on 2019-01-28 15:19  面具下的戏命师  阅读(1581)  评论(0编辑  收藏  举报

Linux csplit命令

Linux csplit命令用于分割文件。拆解文件主要是split和csplit命令,如果说split是按大小来拆分的话,那么csplit则可按匹配来拆分;

将文件依照指定的范本样式予以切割后,分别保存成名称为xx00,xx01,xx02...的文件。若给予的文件名称为"-",则csplit指令会从标准输入设备读取数据。

用法:

csplit [-kqsz][-b<输出格式>][-f<输出字首字符串>]
[-n<输出文件名位数>][--help][--version][文件][范本样式...] 

参数:

-b, --suffix-format=格式      使用sprintf 格式代替%02d
-f, --prefix=前缀              使用指定前缀代替"xx"
-k, --keep-files              不移除错误的输出文件
-n, --digits=数位              使用指定的进制数位代替二进制
-s, --quiet, --silent          不显示输出文件的尺寸计数
-z, --elide-empty-files          删除空的输出文件
--help                          显示此帮助信息并退出
--version                      显示版本信息并退出

如果文件为"-",则读取标准输入。每个"格式"可以是:
整数                          不包括指定的行,并以其为文件分块边界
/表达式/[偏移量]              不包括匹配到的行,并以其为文件分块边界
%表达式%[偏移量]              预先跳过匹配的行数,以其为文件分块边界
{整数}                          将之前指定的模式重复指定的次数
{*}                              将之前指定的模式重复尽可能多的次数。

图解:

实例:

1、将文本文件testfile以第 2 行为分界点切割成两份,使用如下命令

[root@mysql linux]# csplit log.txt 2
17   # xx00文件字符个数
65   # xx01文件字符个数