csplit — split a file into sections determined by context lines


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


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 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


display this help and exit


output version information and exit

Each PATTERN may be:


copy up to but not including specified line number


copy up to but not including a matching line


skip to, but not including a matching line


repeat the previous pattern specified number of times


repeat the previous pattern as many times as possible

A line OFFSET is an integer optionally preceded by '+' or '−'


Written by Stuart Kemp and David MacKenzie.


GNU coreutils online help: <>

Report any translation bugs to <>


Full documentation <>

or available locally via: info '(coreutils) csplit invocation'


Copyright © 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <>.

This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.