1.\" $NetBSD: csplit.1,v 1.2 2006/09/27 17:41:30 wiz Exp $ 2.\" 3.\" Copyright (c) 2002 Tim J. Robbins. 4.\" All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 15.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25.\" SUCH DAMAGE. 26.\" 27.\" $FreeBSD: src/usr.bin/csplit/csplit.1,v 1.11 2005/01/25 22:29:51 tjr Exp $ 28.\" 29.Dd January 26, 2005 30.Dt CSPLIT 1 31.Os 32.Sh NAME 33.Nm csplit 34.Nd split files based on context 35.Sh SYNOPSIS 36.Nm 37.Op Fl ks 38.Op Fl f Ar prefix 39.Op Fl n Ar number 40.Ar file args ... 41.Sh DESCRIPTION 42The 43.Nm 44utility splits 45.Ar file 46into pieces using the patterns 47.Ar args . 48If 49.Ar file 50is 51a dash 52.Pq Sq - , 53.Nm 54reads from standard input. 55.Pp 56The options are as follows: 57.Bl -tag -offset indent -width 10n 58.It Fl f Ar prefix 59Give created files names beginning with 60.Ar prefix . 61The default is 62.Dq xx . 63.It Fl k 64Do not remove output files if an error occurs or a 65.Dv HUP , 66.Dv INT , 67or 68.Dv TERM 69signal is received. 70.It Fl n Ar number 71Use 72.Ar number 73of decimal digits after the 74.Ar prefix 75to form the file name. 76The default is 2. 77.It Fl s 78Do not write the size of each output file to standard output as it is 79created. 80.El 81.Pp 82The 83.Ar args 84operands may be a combination of the following patterns: 85.Bl -tag -offset indent -width 10n 86.It Xo 87.Sm off 88.No / Ar regexp No / 89.Op Oo Cm + | - Oc Ar offset 90.Sm on 91.Xc 92Create a file containing the input from the current line to (but not including) 93the next line matching the given basic regular expression. 94An optional 95.Ar offset 96from the line that matched may be specified. 97.It Xo 98.Sm off 99.No % Ar regexp No % 100.Op Oo Cm + | - Oc Ar offset 101.Sm on 102.Xc 103Same as above but a file is not created for the output. 104.It Ar line_no 105Create containing the input from the current line to (but not including) 106the specified line number. 107.It Brq Ar num 108Repeat the previous pattern the specified number of times. 109If it follows a line number pattern, a new file will be created for each 110.Ar line_no 111lines, 112.Ar num 113times. 114The first line of the file is line number 1 for historic reasons. 115.El 116.Pp 117After all the patterns have been processed, the remaining input data 118(if there is any) will be written to a new file. 119.Pp 120Requesting to split at a line before the current line number or past the 121end of the file will result in an error. 122.Pp 123.Ex -std 124.Sh ENVIRONMENT 125The 126.Ev LANG , LC_ALL , LC_COLLATE , 127and 128.Ev LC_CTYPE 129environment variables affect the execution of 130.Nm 131as described in 132.Xr environ 7 . 133.Sh EXAMPLES 134Split the 135.Xr mdoc 7 136file 137.Pa foo.1 138into one file for each section (up to 20): 139.Pp 140.Dl "$ csplit -k foo.1 '%^\e.Sh%' '/^\e.Sh/' '{20}'" 141.Pp 142Split standard input after the first 99 lines and every 100 lines thereafter: 143.Pp 144.Dl "$ csplit -k - 100 '{19}'" 145.Sh SEE ALSO 146.Xr sed 1 , 147.Xr split 1 , 148.Xr re_format 7 149.Sh STANDARDS 150The 151.Nm 152utility conforms to 153.St -p1003.1-2004 . 154.Sh HISTORY 155A 156.Nm 157command appeared in PWB UNIX. 158.Sh BUGS 159Input lines are limited to 160.Dv LINE_MAX 161(2048) bytes in length. 162