2010. 5. 31. 11:07

텍스트 파일을 잘라보자. split

리눅스 명령어 중의 split 는 큰 용량의 텍스트 파일을 여러개로 분리하는 명령어이다.

[si@localhost test]$ split --help
사용법: split [<옵션>] [<입력> [<접두어>]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

긴 옵션에서 꼭 필요한 인수는 짧은 옵션에도 꼭 필요합니다.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file
      --verbose           진단 내용을 각 출력 파일을 열기 직전에 표준 오류로
                            출력합니다
      --help     이 도움말을 표시하고 끝냅니다
      --version  버전 정보를 출력하고 끝냅니다

<크기>에 접미어로 그 단위를 나타낼 수 있습니다; b는 512, k는 1킬로, m은 1메가입니다.

<bug-coreutils@gnu.org>(으)로 버그를 알려 주십시오.

기억해야 되는 옵션은 -l  옵션이다. 이것은 텍스트 파일을 라인 단위로 자르는 것이다.

 split -l test.txt 라고 넣으면 기본 1000 라인씩 잘라서 파일을 생성하는데 
생성되는 파일의 이름은 순차적으로 xaa, xab ~ 이런식으로 생성된다.

[si@localhost test]$ split -l 10 test.txt
[si@localhost test]$ ls -l
합계 12
-rw-rw-r-- 1 si si 28  5월 31 10:34 test.txt
-rw-rw-r-- 1 si si 21  5월 31 10:35 xaa
-rw-rw-r-- 1 si si  7  5월 31 10:35 xab
[si@localhost test]$ cat xaa
1
2
3
4
5
6
7
8
9
10
[si@localhost test]$ cat xab
11
12

만약 용량단위로 자르고 싶다면 -b 옵션을 이용하자

split -b 10K test.txt 라고 넣으면 10K ( 10240 ) 만큼씩 잘라지게 된다.