csplit 命令

用途

将文件分割成单独的文件。

语法

奇普利-f 前缀 ] [  -k ] [  -n 数字 ] [  -s ] 文件参数 ...

描述

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 标志,那么新文件将命名为 xx0000xx0099.
-s 消除字符计数的显示。

退出状态

本命令返回以下退出值:

描述
重大安全事件数量 成功完成。
> 0 发生错误。

示例

  1. 要拆分文本book在每个章节的单独文件中,输入:
    csplit book "/^ Chapter *[k.0-9]k./" {9}
    这创建了 10 个文件,从 xx00xx09xx00 文件包含了第一章前面的出版前页。 文件从 xx01 xx09 包含各个单独的章节。 每个章节都以仅包含词的行开头Chapter和章号。
  2. 指定前缀chap用于从以下位置创建的文件:book,请输入:
    csplit  -f chap book "/^ Chapter *[k.0-9]k./" {9}
    这种分裂book进入名为 chap00chap09的文件中。

文件

描述
/usr/bin/csplit 包含 csplit 命令。