CSPLIT(1)                  OpenBSD Reference Manual                  CSPLIT(1)

NAME
     csplit - split files based on context

SYNOPSIS
     csplit [-ks] [-f prefix] [-n number] file args ...

DESCRIPTION
     The csplit utility splits file into pieces using the patterns args.  If
     file is a dash (`-'), csplit reads from standard input.

     Files are created with a prefix of ``xx'' and two decimal digits.  The
     size of each file is written to standard output as it is created.  If an
     error occurs whilst files are being created, or a HUP, INT, or TERM sig-
     nal is received, all files previously written are removed.

     The options are as follows:

     -f prefix
             Create file names beginning with prefix, instead of ``xx''.

     -k      Do not remove previously created files if an error occurs or a
             HUP, INT, or TERM signal is received.

     -n number
             Create file names beginning with number of decimal digits after
             the prefix, instead of 2.

     -s      Do not write the size of each output file to standard output as
             it is created.

     The args operands may be a combination of the following patterns:

     /regexp/[[+|-]offset]
             Create a file containing the input from the current line to (but
             not including) the next line matching the given basic regular ex-
             pression.  An optional offset from the line that matched may be
             specified.

     %regexp%[[+|-]offset]
             Same as above but a file is not created for the output.

     line_no
             Create containing the input from the current line to (but not in-
             cluding) the specified line number.

     {num}   Repeat the previous pattern the specified number of times.  If it
             follows a line number pattern, a new file will be created for
             each line_no lines, num times.  The first line of the file is
             line number 1 for historic reasons.

     After all the patterns have been processed, the remaining input data (if
     there is any) will be written to a new file.

     Requesting to split at a line before the current line number or past the
     end of the file will result in an error.

     The csplit utility exits 0 on success, and >0 if an error occurs.

ENVIRONMENT
     The LANG, LC_ALL, LC_COLLATE, and LC_CTYPE environment variables affect
     the execution of csplit as described in environ(7).

EXAMPLES
     Split the mdoc(7) file foo.1 into one file for each section (up to 20):

           $ csplit -k foo.1 '%^\.Sh%' '/^\.Sh/' '{20}'

     Split standard input after the first 99 lines and every 100 lines there-
     after:

           $ csplit -k - 100 '{19}'

SEE ALSO
     sed(1), split(1), re_format(7)

STANDARDS
     The csplit utility is compliant with the IEEE Std 1003.1-2008 (``POSIX'')
     specification.

HISTORY
     A csplit command appeared in PWB UNIX.

BUGS
     Input lines are limited to LINE_MAX (2048) bytes in length.

OpenBSD 4.7                    October 22, 2009                              2
