csplit - split files based on context
csplit [-ks][-f prefix][-n number] file arg1 ...argn
The csplit utility shall read the file named by the file operand, write all or part of that file into other files as directed by the arg operands, and write the sizes of the files.
The csplit utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
The following options shall be supported:
The following operands shall be supported:
The operands arg1 ... argn can be a combination of the following:
A file shall be created using the content of the lines from the current line up to, but not including, the line that results from the evaluation of the regular expression with offset, if any, applied. The regular expression rexp shall follow the rules for basic regular expressions described in the Base Definitions volume of IEEE Std 1003.1-2001, Section 9.3, Basic Regular Expressions. The application shall use the sequence "\/" to specify a slash character within the rexp. The optional offset shall be a positive or negative integer value representing a number of lines. A positive integer value can be preceded by '+' . If the selection of lines from an offset expression of this type would create a file with zero lines, or one with greater than the number of lines left in the input file, the results are unspecified. After the section is created, the current line shall be set to the line that results from the evaluation of the regular expression with any offset applied. If the current line is the first line in the file and a regular expression operation has not yet been performed, the pattern match of rexp shall be applied from the current line to the end of the file. Otherwise, the pattern match of rexp shall be applied from the line following the current line to the end of the file.
Equivalent to /rexp/[offset], except that no file shall be created for the selected section of the input file. The application shall use the sequence "\%" to specify a percent-sign character within the rexp.
An error shall be reported if an operand does not reference a line between the current position and the end of the file.
The input file shall be a text file.
The following environment variables shall affect the execution of csplit:
Determine the locale for the behavior of ranges, equivalence classes, and multi-character collating elements within regular expressions.
If the -k option is specified, created files shall be retained. Otherwise, the default action occurs.
Unless the -s option is used, the standard output shall consist of one line per file created, with a format as follows:
"%d\n", <file size in bytes>
The standard error shall be used only for diagnostic messages.
The output files shall contain portions of the original input file; otherwise, unchanged.
The following exit values shall be returned:
By default, created files shall be removed if an error occurs. When the -k option is specified, created files shall not be removed if an error occurs.
The following sections are informative.
This example creates four files, cobol00 ... cobol03:
csplit -f cobol file '/procedure division/' /par5./ /par16./
After editing the split files, they can be recombined as follows:
cat cobol0[0-3] > file
Note that this example overwrites the original file.
This example would split the file after the first 99 lines, and every 100 lines thereafter, up to 9999 lines; this is because lines in the file are numbered from 1 rather than zero, for historical reasons:
csplit -k file 100 {99}
Assuming that prog.c follows the C-language coding convention of ending routines with a '}' at the beginning of the line, this example creates a file containing each separate C routine (up to 21) in prog.c:
csplit -k prog.c '%main(%' '/^}/+1' {20}
The -n option was added to extend the range of filenames that could be handled.
Consideration was given to adding a -a flag to use the alphabetic filename generation used by the historical split utility, but the functionality added by the -n option was deemed to make alphabetic naming unnecessary.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |