split - macOS


Overview

split divides a file into several smaller files. It is useful for splitting large files into smaller, more manageable chunks for easier transfer or processing.

Syntax

split [options] [<input-file>] [<output-file-prefix>]

Options/Flags

  • -a, –suffix-length : Sets the suffix length of the output files (default: 2).
  • -b, –bytes : Splits the input file into chunks of the specified size (in bytes).
  • -C, –line-bytes : Splits the input file into chunks of the specified line size (in bytes).
  • -d, –delimiter : Splits the input file based on the specified delimiter (default: newline).
  • -l, –lines : Splits the input file into chunks containing the specified number of lines.
  • –help: Displays helpful information about the command.

Examples

Simple split: Divide a file called “file.txt” into chunks of 1000 lines:

split -l 1000 file.txt

Specify output file prefix: Split the file “file.txt” into chunks with the prefix “mychunk”:

split -a 5 -l 500 file.txt mychunk

Split by delimiter: Split the file “file.txt” into chunks based on the comma (“,”) delimiter:

split -d "," file.txt

Common Issues

  • Missing input file: If the input file is not specified, split will prompt for it interactively.
  • Invalid output file prefix: If the specified output file prefix already exists as a directory, split will fail.
  • Empty input file: If the input file is empty, split will not create any output files.

Integration

split can be used alongside other commands to process large files efficiently:

  • split | parallel -j : Split a file and process each chunk in parallel using the specified command.
  • tar -cvf archive.tar split-chunk*: Create an archive containing all the split chunks.
  • cat: Concatenates files.
  • grep: Searches for a pattern within a file.
  • sed: Performs text editing operations on files.