語法
csplit [ -f Prefix ] [ -k ] [ -n Number ] [ -s ] File Argument ...
描述
csplit 命令拷貝指定的文件并將拷貝分成段。原始的還未改變的輸入文件,必須是一個文本文件。
這個 csplit 命令將這些段寫到文件 xx00 . . . xx99 中,這依賴于 Argument 參數被指定(99 是最大值)多少次。缺省情況下,Argument 參數期望一個行號。當指定多行號時應用以下規(guī)則:
* 文件 xx00 包含原始文件的行開始,到(但不包括)第一個 Argument 參數指定的行。
* 文件 xx01 包含第一個 Argument參數指定的編號的行開始,直到(但不包括)第二個 Argument參數引用的行。每個指定行號作為自變量,標記新行的開始。
* 文件 xxnn(最后創(chuàng)建的文件)包含最后一個 Argument 參數指定的編號的行開始,直到文件結束。
示例
如果原始的文件有 108 行,輸入:
csplit orginal.txt 11 72 98
這個 csplit 命令創(chuàng)建 4 個文件: xx00 文件包含行 1-10,xx01 文件包含行 11-71,xx02 文件包含行 72-97,xx03 文件包含行 98-108。
Argument 參數還可以包含以下符號和模式字符串:
/Pattern/ 創(chuàng)建一個文件包含從當前行開始直到(但不包含)包含指定模式的那一行的段的文件。包含模式的行成為當前行。
% Pattern % 使包含指定模式的行成為當前行,但不為段創(chuàng)建一個文件。
+ Number 將指定編號的行從以前的匹配模式前移。示例,/頁 /+5 搜索頁,那就提前 5 行。
-Number 將指定的行號從以前的匹配模式行后移。示例,/頁 /-5 搜索頁那就后退 5 行。
{Number} 重復指定次數的以前選項。這個號碼可以緊跟任何模式或行號。如果緊跟一個模式,csplit 命令就會重新使用指定次數的模式。如果緊跟一個行號,csplit 命令將文件從由行號指定行的點處分割開。
將引用標記放在所有模式周圍,這些模式包含空格或其它專用于 shell 的字符。模式不要包含 embedded 新行字符。在表達中,例如 [a-z],- (減號)意思是通過,這是根據當前的整理順序。一個整理順序可以定義同等的類以便在字符范圍以內使用。
標志
-fPrefix 指定前綴由已經創(chuàng)建的文件段使用。此變量的缺省值是 xx。
-k 使創(chuàng)建的文件段完整的位于出錯事件中。
-nNumber 改變十進制號碼位,用于創(chuàng)建文件名。缺省的是兩個十進制位或 xx00 . . . xx99。如果指定 -n 4 標志,例如,新的文件被命名為 xx0000 . . . xx0099。
-s 消除字符計數的顯示。
退出狀態(tài)
此命令返回以下退出值:
0 成功完成。
>0 發(fā)生錯誤。
示例
1. 將 book 的文本以每章一個單獨文件來分割,輸入:
csplit book "/^ Chapter *[k.0-9]k./" {9}
這創(chuàng)建了 10 個文件,從 xx00 到 xx09。xx00 文件包含了第一章前面的出版前頁。文件從 xx01 到 xx09 包含各個單獨的章節(jié)。每一章起始的一行只包含單詞章和章節(jié)號。
2. 為這些創(chuàng)建自 book 的文件指定前綴 chap,輸入:
csplit -f chap book "/^ Chapter *[k.0-9]k./" {9}
這樣把 book 分割成文件,命名從 chap00 到 chap09。
文件
/usr/bin/csplit 包含 csplit 命令。