Splitting files with csplit

Periodically I find that I need to split a file into several pieces. There are a number of utilities that can be used to split a file, but I have grown to adore csplit. Csplit can split files based on regular expressions, or by quantity. The following example uses csplit to split /etc/services into a series of 10-line files:

$ csplit -f services.bak.00 /etc/services 10 {10}

172
208
225
372
408
188
450
392
256
325
434
521

$ ls -la service*

-rw-r--r--   1 root     root         172 May 24 12:36 services.bak.0000
-rw-r--r--   1 root     root         208 May 24 12:36 services.bak.0001
-rw-r--r--   1 root     root         225 May 24 12:36 services.bak.0002
-rw-r--r--   1 root     root         372 May 24 12:36 services.bak.0003
-rw-r--r--   1 root     root         408 May 24 12:36 services.bak.0004
-rw-r--r--   1 root     root         188 May 24 12:36 services.bak.0005
-rw-r--r--   1 root     root         450 May 24 12:36 services.bak.0006
-rw-r--r--   1 root     root         392 May 24 12:36 services.bak.0007
-rw-r--r--   1 root     root         256 May 24 12:36 services.bak.0008
-rw-r--r--   1 root     root         325 May 24 12:36 services.bak.0009
-rw-r--r--   1 root     root         434 May 24 12:36 services.bak.0010
-rw-r--r--   1 root     root         521 May 24 12:36 services.bak.0011

Tis good stuff!

Leave a Reply

Your email address will not be published. Required fields are marked *