csplit 命令
用途
将文件分割成单独的文件。
语法
描述
csplit 命令指定的文件并将分成段。 原始的还未改变的输入文件,必须是一个文本文件。
csplit 命令将段写入文件 xx00 .。xx99 中,这取决于 Argument 参数的指定次数(最大值为 99)。 缺省情况下, Argument 参数期望一个行号。 当指定多行号时应用以下规则:
- 文件 xx00 包含从原始文件开头到 (但不包括) 第一个 参数 参数中指定的行号的行。
- 文件 xx01 包含以第一个 Argument 参数指定的数字开头的行,直到但不包括: 第二个 Argument 参数引用的行。 每个指定行号作为参数,标记新文件的开始。
- File xxnn (创建的最后一个文件) 包含以最后一个 Argument 参数指定的数字开始到文件末尾的行。
例如,如果原始的文件有 108 行,请输入:
csplit orginal.txt 11 72 98这个 csplit 命令创建 4 个文件: xx00 文件包含行 1-10,xx01 文件包含行 11-71, xx02 文件包含行 72-97,xx03 文件 包含行 98-108。
Argument 参数还可以包含以下符号和模式字符串:
| 项 | 描述 |
|---|---|
| /模式/ | 创建一个文件包含从当前行开始直到(但不包含)包含指定模式的那一行的段的文件。 包含模式的行成为当前行。 |
| %模式% | 使包含指定模式的行成为当前行,但不为段创建一个文件。 |
| +编号 | 将指定编号的行从以前的匹配模式前移。 例如,/Page/+5搜索Page,然后前进 5 行。 |
| -编号 | 将指定的行号从以前的匹配模式行后移。 例如,/Page/-5搜索Page,然后备份 5 行。 |
| {编号} | 重复指定次数的以前选项。 这个号码可以紧跟任何模式或行号。 如果紧跟一个模式,csplit 命令就会重新使用指定次数的模式。 如果紧跟一个行号,csplit 命令 将文件从由行号指定行的点处分割开。 |
将引用标记放在所有模式周围,这些模式包含空格或其他专用于 shell 的字符。 模式不要包含 embedded 新行字符。 在表达式中,例如[a-z],根据当前整理顺序,-(减号) 表示 到。 一个整理顺序可以定义 同等的类以便在字符范围以内使用。
标志
| 项 | 描述 |
|---|---|
| -f 前缀 | 指定前缀由已经创建的文件段使用。 此变量的缺省值是 xx。 |
| -k | 使创建的文件段完整的位于出错事件中。 |
| -n 数字 | 改变十进制号码位,用于创建文件名。 缺省值为两位小数,或 xx00 .。 xx99. 例如,如果指定 -n 4 标志,那么新文件将命名为 xx0000 。 xx0099. |
| -s | 消除字符计数的显示。 |
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 成功完成。 |
| > 0 | 发生错误。 |
示例
- 要拆分文本book在每个章节的单独文件中,输入:
这创建了 10 个文件,从 xx00 到 xx09。 xx00 文件包含了第一章前面的出版前页。 文件从 xx01 到 xx09 包含各个单独的章节。 每个章节都以仅包含词的行开头Chapter和章号。csplit book "/^ Chapter *[k.0-9]k./" {9} - 指定前缀chap用于从以下位置创建的文件:book,请输入:csplit -f chap book "/^ Chapter *[k.0-9]k./" {9}这种分裂book进入名为 chap00 到 chap09的文件中。
文件
| 项 | 描述 |
|---|---|
| /usr/bin/csplit | 包含 csplit 命令。 |