Unix‎ > ‎Solaris‎ > ‎Solaris man pages‎ > ‎1‎ > ‎


     csplit - split  files based on context

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

     The csplit utility reads the file named by the file operand,
     writes all or part of that file into other files as directed
     by the arg operands, and writes the sizes of the files.

     The following options are supported:

     -f prefix       Names the created files prefix00,  prefix01,
                     ...,  prefixn.  The default is xx00 ... xxn.
                     If the prefix argument would create  a  file
                     name  exceeding  14 bytes, an error results.
                     In that case, csplit exits with a diagnostic
                     message and no files are created.

     -k              Leaves previously created files  intact.  By
                     default,  csplit removes created files if an
                     error occurs.

     -n number       Uses number decimal digits to form filenames
                     for the file pieces. The default is 2.

     -s              Suppresses the output of file size messages.

     The following operands are supported:

     file            The path name of a text file to be split. If
                     file is -, the standard input will be used.

     The operands arg1 ... argn can be a combination of the  fol-

     /rexp/[offset]  Create a file using the content of the lines
                     from the current line up to, but not includ-
                     ing,  the  line  that   results   from   the
                     evaluation  of  the  regular expression with
                     offset, if any, applied. The regular expres-
                     sion  rexp  must  follow the rules for basic
                     regular expressions. Regular expressions can
                     include  the  use  of  '\/'  and '\%'. These
                     forms must be properly  quoted  with  single
                     quotes,  since  "\" is special to the shell.
                     The optional offset must be  a  positive  or
                     negative integer value representing a number
                     of lines. The integer value must be preceded
                     by + or -. 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 will be
                     set  to  the  line  that  results  from  the
                     evaluation of the  regular  expression  with
                     any  offset  applied.  The  pattern match of
                     rexp always is applied from the current line
                     to the end of the file.

     %rexp%[offset]  This operand is the same as  /rexp/[offset],
                     except  that no file will be created for the
                     selected section of the input file.

     line_no         Create a file from the current  line  up  to
                     (but not including) the line number line_no.
                     Lines in the file will be numbered  starting
                     at one. The current line becomes line_no.

     {num}           Repeat operand. This operand can follow  any
                     of  the operands described previously. If it
                     follows a rexp type  operand,  that  operand
                     will  be  applied num more times. If it fol-
                     lows a line_no operand,  the  file  will  be
                     split  every  line_no lines, num times, from
                     that point.

     An error will be reported if an operand does not reference a
     line between the current position and the end of the file.


     See largefile(5) for the  description  of  the  behavior  of
     csplit  when  encountering  files greater than or equal to 2
     Gbyte (2**31 bytes).

     Example 1: Splitting and combining files

     This example creates four files, cobol00...cobol03.

     example% csplit -f cobol filename '/procedure division/' /par5./ /par16./

     After editing the ``split'' files, they can be recombined as

     example% cat cobol0[0-3] > filename

     Note: This example overwrites the original file.

     Example 2: Splitting a file into equal parts

     This example splits the file  at  every  100  lines,  up  to
     10,000  lines.  The -k option causes the created files to be
     retained if there are less than 10,000  lines;  however,  an
     error message would still be printed.

     example% csplit -k filename 100 {99}

     Example 3: Creating a file for separate C routines

     If prog.c follows the normal C coding convention  (the  last
     line  of a routine consists only of a } in the first charac-
     ter position), this example creates a file for each separate
     C routine (up to 21) in prog.c.

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

     See environ(5) for descriptions of the following environment
     variables that affect the execution of csplit: LANG, LC_ALL,

     The following exit values are returned:

     0        Successful completion.

     >0       An error occurred.

     See attributes(5) for descriptions of the  following  attri-

    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | Availability                | SUNWesu                     |
    | CSI                         | Enabled                     |
    | Interface Stability         | Standard                    |

     sed(1), split(1), attributes(5),  environ(5),  largefile(5),

     The diagnostic messages are self-explanatory, except for the

     arg - out of range      The given argument did not reference
                             a  line between the current position
                             and the end of the file.

Man pages from Solaris 10 Update 8. See docs.sun.com and www.oracle.com for further documentation and Solaris information.