csplit — split a file into sections determined by context lines

Examples (TL;DR)

Synopsis

csplit [OPTION]... FILE PATTERN...

Description

Output pieces of FILE separated by PATTERN(s) to files 'xx00', 'xx01', ..., and output byte counts of each piece to standard output.

Read standard input if FILE is -

Mandatory arguments to long options are mandatory for short options too.

-b, --suffix-format=FORMAT

use sprintf FORMAT instead of %02d

-f, --prefix=PREFIX

use PREFIX instead of 'xx'

-k, --keep-files

do not remove output files on errors

--suppress-matched

suppress the lines matching PATTERN

-n, --digits=DIGITS

use specified number of digits instead of 2

-s, --quiet, --silent

do not print counts of output file sizes

-z, --elide-empty-files

remove empty output files

--help

display this help and exit

--version

output version information and exit

Each PATTERN may be

INTEGER

copy up to but not including specified line number

/REGEXP/[OFFSET]

copy up to but not including a matching line

%REGEXP%[OFFSET]

skip to, but not including a matching line

{INTEGER}

repeat the previous pattern specified number of times

{*}

repeat the previous pattern as many times as possible

A line OFFSET is a required '+' or '-' followed by a positive integer.

Author

Written by Stuart Kemp and David MacKenzie.

Reporting Bugs

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>

See Also

Full documentation <https://www.gnu.org/software/coreutils/csplit>
or available locally via: info '(coreutils) csplit invocation'

Info

October 2019 GNU coreutils 8.31