split (Unix)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
split
Original authorAT&T Bell Laboratories
DevelopersVarious open-source and commercial developers
Initial releaseFebruary 1973; 53 years ago (1973-02)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemUnix, Unix-like, Plan 9, IBM i
    PlatformCross-platform
    TypeCommand
    Licensecoreutils: GPLv3+
    Plan 9: MIT License

    split is a utility on Unix, Plan 9, and Unix-like operating systems most commonly used to split a computer file into two or more smaller files.

    History

    [edit | edit source]

    The split command first appeared in Version 3 Unix[1] and is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the Single Unix Specification.[2] The version of split bundled in GNU coreutils was written by Torbjorn Granlund and Richard Stallman.[3] The split command has also been ported to the IBM i operating system.[4]

    Usage

    [edit | edit source]

    The command-syntax is:

     split [OPTION] [INPUT [PREFIX]]
    

    The default behavior of split is to generate output files of a fixed size, default 1000 lines. The files are named by appending aa, ab, ac, etc. to output filename. If output filename is not given, the default filename of x is used, for example, xaa, xab, etc. When a hyphen (-) is used instead of input filename, data is derived from standard input. The files are typically rejoined using a utility such as cat.

    Additional program options permit a maximum character count (instead of a line count), a maximum line length, how many incrementing characters in generated filenames, and whether to use letters or digits.

    Split file into pieces

    [edit | edit source]

    Create a file named "myfile.txt" with exactly 3,000 lines of data:

    $ head -3000 < /dev/urandom > myfile.txt
    

    Now, use the split command to break this file into pieces (note: unless otherwise specified, split will break the file into 1,000-line files):

    $ split myfile.txt
    $ ls -l
    -rw-r--r--  1 root root 761K Jun 16 18:17 myfile.txt
    -rw-r--r--  1 root root 242K Jun 16 18:17 xaa
    -rw-r--r--  1 root root 263K Jun 16 18:17 xab
    -rw-r--r--  1 root root 256K Jun 16 18:17 xac
    $ wc --lines xa*
      1000 xaa
      1000 xab
      1000 xac
      3000 total
    

    As seen above, the split command has broken the original file (keeping the original intact) into three, equal in number of lines (i.e., 1,000), files: xaa, xab, and xac.

    See also

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ split(1) – FreeBSD General Commands Manual
    2. ^ split – Shell and Utilities Reference, The Single UNIX Specification, Version 5 from The Open Group
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]