Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > C


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


csplit — context split


csplit [-s] [-k] [-f prefix [-n number] file arg1 [ ... argn]


csplit reads file, separates it into n+1 sections as defined by the arguments arg1 ... argn, and places the results in separate files. The maximum number of arguments (arg1 through argn) allowed is 99 unless the -n number option is used to allow for more output file names. If the -f prefix option is specified, the resulting filenames are prefix00 through prefixNN where NN is the two-digit value of n using a leading zero if n is less than 10. If the -f prefix option is not specified, the default filenames xx00 through xxNN are used. file is divided as follows:

  • DefaultPrefixed 
    xx00prefix00From start of file up to (but not including) the line referenced by arg1.
    xx01prefix01From the line referenced by arg1 up to the line referenced by arg2.
    ... ... ...
    xxNNprefixNNFrom the line referenced by argn to end of file.

If the file argument is -, standard input is used.

csplit supports the Basic Regular Expression syntax (see regexp(5)).


csplit recognizes the following options:


Suppress printing of all character counts (csplit normally prints the character counts for each file created).


Leave previously created files intact (csplit normally removes created files if an error occurs).

-f prefix

Name created files prefix00 through prefixNN (default is xx00 through xxNN.

-n number

The output file name suffix will use number digits instead of the default 2. This allows creation of more than 100 output files.

Arguments (arg1 through argn) to csplit can be any combination of the following:


Create a file containing the section from the current line up to (but not including) the line matching the regular expression regexp. The new current line becomes the line matching regexp.



Create a file containing the section from the current line up to (but not including) the nth before (-n) or after (+n) the line matching the regular expression regexp. (e.g., /Page/-5). The new current line becomes the line matching regexp±n lines.


equivalent to /regexp/, except that no file is created for the section.


Create a file from the current line up to (but not including) line_number. The new current line becomes line_number.


Repeat argument. This argument can follow any of the above argument forms. If it follows a regexp argument, that argument is applied num more times. If it follows line_number, the file is split every line_number lines for num times from that point until end-of-file is reached or num expires.


Repeats previous operand as many times as necessary to finish input.

Enclose in appropriate quotes all regexp arguments containing blanks or other characters meaningful to the shell. Regular expressions must not contain embedded new-lines. csplit does not alter or remove the original file; it is the user's responsibility to remove it when appropriate.


Environment Variables

LC_COLLATE determines the collating sequence used in evaluating regular expressions.

LC_CTYPE determines the characters matched by character class expressions in regular expressions.

LC_MESSAGES determines the language in which messages are displayed.

If LC_COLLATE or LC_CTYPE or LC_MESSAGES is not specified in the environment or is set to the empty string, the value of LANG is used as a default for each unspecified or empty variable. If LANG is not specified or is set to the empty string, a default of "C" (see lang(5)) is used instead of LANG. If any internationalization variable contains an invalid setting, csplit behaves as if all internationalization variables are set to "C". See environ(5).

International Code Set Support

Single- and multi-byte character code sets are supported.


Messages are self explanatory except for:

arg - out of range

which means that the given argument did not reference a line between the current position and the end of the file. This warning also occurs if the file is exhausted before the repeat count is.


Create four files, cobol00 through cobol03. After editing the ``split'' files, recombine them back into the original file, destroying its previous contents.

csplit -f cobol file '/procedure division/' /par5./ /par16./

Perform editing operations

cat cobol0[0-3] > file

Split a file at every 100 lines, up to 10,000 lines (100 files). The -k option causes the created files to be retained if there are fewer than 10,000 lines (an error message is still printed).

csplit -k file 100 '{99}'

Assuming that prog.c follows the normal C coding convention of terminating routines with a } at the beginning of the line, create a file containing each separate C routine (up to 21) in prog.c.

csplit -k prog.c '%main(%' '/^}/+1' '{20}'


csplit: SVID2, SVID3, XPG2, XPG3, XPG4

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.