csplit(1)csplit(1)NAMEcsplit - Splits files by context
SYNOPSIScsplit [-f prefix] [-ks] [-nnumber] file | - arg1...argn
The csplit command reads the specified file (or standard input) and
separates it into segments defined by the specified arguments. The
csplit command optionally prints the sizes, in bytes, of each file cre‐
ated.
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
csplit: XCU5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
OPTIONS
Specifies the prefix name (xx by default) for the created file seg‐
ments. Leaves previously created file segments intact in the event of
an error. By default, created files are removed if an error occurs.
Uses number decimal digits to form file names for the file pieces. The
default is 2. Suppresses the display of file size messages.
OPERANDS
Specifies the text file to be split. If you specify - in place of the
input file name, csplit reads from standard input.
The operands arg1...argn can be a combination of the following: Creates
a file using the contents of the lines from the current line up to, but
not including, the line that results from the evaluation of the regular
expression with an offset, if included. The offset argument can be any
integer (positive or negative) that represents a number of lines. A
plus or minus sign is required. Has the same effect as /pattern/,
except that no segment file is created. Moves forward or backward the
specified number of lines from the line matched by an immediately pre‐
ceding pattern argument (for example, /Page/-5). Creates a file con‐
taining the segment from the current line up to, but not including,
line_number, which becomes the current line. Repeats the preceding
argument the specified number of times. This number can follow any of
the pattern or line_number arguments. If it follows a pattern argu‐
ment, csplit reuses that pattern the specified number of times. If it
follows a line_number argument, csplit splits the file from that point
every line_number of lines for number times.
DESCRIPTION
By default, csplit writes the file segments to files named xx00 ...xxn,
where n is the number of arguments listed on the command line (n may
not be greater than 99). These new files get the following pieces of
file: From the start of file up to, but not including, the line refer‐
enced by the first argument. From the line referenced by the first
argument up to the line referenced by the second argument. From the
line referenced by the last argument to the end of file.
The csplit command does not alter the original file, unless a generated
file overwrites the original file.
Quote all pattern arguments that contain spaces or other characters
special to the shell. Patterns may not contain embedded newline char‐
acters.
[Tru64 UNIX] See the grep(1) reference page for information about cre‐
ating patterns. In an expression such as [a-z], the dash means
“through” according to the current collating sequence. The collating
sequence is determined by the value of the LC_COLLATE environment vari‐
able.
Unless the -s option is specified, csplit writes one line, containing
the file size in bytes, for each file created to standard output.
EXIT STATUS
The following exit values are returned: Successful completion. An
error occurred.
Unless the -k option is used, any files created before the error was
detected will be removed.
EXAMPLES
To split the text of a book into a separate file for each chapter,
enter: csplit book "/^Chapter *[0-9]/" {9}
This creates files named xx00, xx01, xx02,...,xx09, which con‐
tain individual chapters of the file book. Each chapter begins
with a line that contains only the word Chapter and the chapter
number. The file xx00 contains the front matter that comes
before the first chapter. The {9} after the pattern causes
csplit to create up to 9 individual chapters; the remainder are
placed in xx10. To specify the prefix for the created file
names, enter: csplit-f chap book "/^Chapter *[0-9]/" {9}
This splits book into files named chap00, chap01,...chap9,
chap10.
ENVIRONMENT VARIABLES
The following environment variables affect the execution of csplit:
Provides a default value for the internationalization variables that
are unset or null. If LANG is unset or null, the corresponding value
from the default locale is used. If any of the internationalization
variables contain an invalid setting, the utility behaves as if none of
the variables had been defined. If set to a non-empty string value,
overrides the values of all the other internationalization variables.
Determines the locale for the behavior of ranges, equivalence classes,
and multicharacter collating elements within regular expressions.
Determines the locale for the interpretation of sequences of bytes of
text data as characters (for example, single-byte as opposed to multi‐
byte characters in arguments and input files) and the behavior of char‐
acter classes within regular expressions. Determines the locale for
the format and contents of diagnostic messages written to standard
error. Determines the location of message catalogues for the process‐
ing of LC_MESSAGES.
SEE ALSO
Commands: ed(1), grep(1), sed(1), sh(1b), sh(1p), split(1)
Files: regexp(3)
Standards: standards(5)csplit(1)