csplit — split a file into sections determined by context lines
Examples (TL;DR)
-
Split a file at lines 5 and 23:
csplit file 5 23
-
Split a file every 5 lines (this will fail if the total number of lines is not divisible by 5):
csplit file 5 {*}
-
Split a file every 5 lines, ignoring exact-division error:
csplit -k file 5 {*}
-
Split a file at line 5 and use a custom prefix for the output files:
csplit file 5 -f prefix
-
Split a file at a line matching a regular expression:
csplit file /regex/
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.
Reporting Bugs
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Copyright
Copyright © 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
See Also
Full documentation <https://www.gnu.org/software/coreutils/csplit>
or available locally via: info '(coreutils) csplit invocation'