csplit
split files based on context
TLDR
Split a file at lines 5 and 23
Split a file every 5 lines (this will fail if the total number of lines is not divisible by 5)
Split a file every 5 lines, ignoring exact-division error
Split a file at line 5 and use a custom prefix for the output files
Split a file at a line matching a regular expression
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 an integer optionally preceded by '+' or '-'
REPORTING BUGS
GNU coreutils online help:
<https://www.gnu.org/software/coreutils/>
Report any translation bugs to
<https://translationproject.org/team/>
COPYRIGHT
Copyright © 2022 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'
AUTHOR
Written by Stuart Kemp and David MacKenzie.