split : 큰파일을 여러 작은 파일로 나눌때 사용한다.


$ split tree tree_

$ ls -l

    51 Jul 12 14:58 test

185807 Jul 12 14:03 tree

 53732 Jul 12 15:08 tree_aa

 68378 Jul 12 15:08 tree_ab

 62928 Jul 12 15:08 tree_ac

   769 Jul 12 15:08 tree_ad 

$ wc -l tree*

  1000 tree_aa

  1000 tree_ab

  1000 tree_ac

    19 tree_ad

  3019 total

## 옵션없이 사용하면 분할파일뒤에 영문 2자리가 추가되어 구분합니다.

## 분할 기준은 하나의 파일이 1000라인으로 분할 됩니다.


## 옵션 정리


-a : 분할되는 파일뒤에 붙을 길이를 지정합니다.

$ split -a 3 tree tree_

$ ls -l

     51 Jul 12 14:58 test

 185807 Jul 12 14:03 tree

  53732 Jul 12 15:11 tree_aaa

  68378 Jul 12 15:11 tree_aab

  62928 Jul 12 15:11 tree_aac

    769 Jul 12 15:11 tree_aad


--additional-suffix : 분할파일 자릿수 뒤에 추가적으로 이름을 설정합니다.

$ split --additional-suffix=.txt tree tree_

$ ls -l

     51 Jul 12 14:58 test

 185807 Jul 12 14:03 tree

  53732 Jul 12 15:11 tree_aa.txt

  68378 Jul 12 15:11 tree_ab.txt

  62928 Jul 12 15:11 tree_ac.txt

    769 Jul 12 15:11 tree_ad.txt


-b : 분할되는 기준을 바이트 크기로 분할합니다.

$ split -b 50000 tree tree_

$ ls -l

 185807 Jul 12 14:03 tree

  50000 Jul 12 15:12 tree_aa

  50000 Jul 12 15:12 tree_ab

  50000 Jul 12 15:12 tree_ac

  35807 Jul 12 15:12 tree_ad

## 라인 중간에 분할 될수 있음 


-C : 라인을 기준으로 지정 바이트가 넘지 않도록 파일을 분할합니다.

$ split -C 50000 tree tree_

$ ls -l

     51 Jul 12 14:58 test

 185807 Jul 12 14:03 tree

  49952 Jul 12 15:12 tree_aa

  49962 Jul 12 15:12 tree_ab

  49926 Jul 12 15:12 tree_ac

  35967 Jul 12 15:12 tree_ad

##  라인 중간에 분할 안됨. 한라인계산하여 지정바이트로 분할함


-d : 분할 파일이름뒤에 영문이 아닌 숫자로 지정합니다. (0부터 시작)

$ split -d tree tree_

$ ls -l

 185807 Jul 12 14:03 tree

  53732 Jul 12 15:13 tree_00

  68378 Jul 12 15:13 tree_01

  62928 Jul 12 15:13 tree_02

    769 Jul 12 15:13 tree_03

## 89까지는 두자리이고 그 이후부터 9001로 네자리로 출력됨.

## 분할 파일이 90개를 넘어가면 -a으로 설정이 필요함.


--numeric-suffixes : -d 옵션과 동일하지만 시작값을 지정합니다.

$ split --numeric-suffixes=90 tree tree_

$ ls -l

 185807 Jul 12 14:03 tree

  53732 Jul 12 15:13 tree_90

  68378 Jul 12 15:13 tree_91

  62928 Jul 12 15:13 tree_92

    769 Jul 12 15:13 tree_93

## 기본 2자리이므로 99이후 생성안됨.

## 세자리 이상 지정시에 -a 옵션으로 설정이 필요함.


-l : 라인수 기준으로 파일을 분할 합니다.

$ split -l 1500 tree tree_

$ ls -l

 185807 Jul 12 14:03 tree

  88812 Jul 12 15:14 tree_aa

  96226 Jul 12 15:14 tree_ab

    769 Jul 12 15:14 tree_ac


$ wc -l tree_*

  1500 tree_aa

  1500 tree_ab

    19 tree_ac

  3019 total



-n : 파일을 균등하게 1/N 나누어 분할합니다.

N : 몇 등분으로 나눌지 지정 합니다.

$ split -n 4 tree tree_

$ ls -l

 185807 Jul 12 14:03 tree

  46451 Jul 12 15:15 tree_aa

  46451 Jul 12 15:15 tree_ab

  46451 Jul 12 15:15 tree_ac

  46454 Jul 12 15:15 tree_ad


K/N : (N)등분으로 파일을 분할 할 때 지정한(K) 번째를 출력합니다 (파일은 생성되지 않습니다)

$ split -n 2/4 tree tree_

l/N : (N)등분으로 파일을 분할 할 때 라인기준으로 바이트 계산하여 분할 합니다.

$ split -n l/4 tree tree_
$ ls -l

 185807 Jul 12 14:03 tree

  46484 Jul 12 15:17 tree_aa

  46465 Jul 12 15:17 tree_ab

  46406 Jul 12 15:17 tree_ac

  46452 Jul 12 15:17 tree_ad


l/K/N : (N)등분으로 파일을 나눌때 라인기준으로 바이트 계산하여 (K)번째 를 출력합니다. (파일은 생성되지 않습니다.)

$ split -n l/2/4 tree tree_

r/N : (N)등분으로 파일을 분할할 때 라운드 로빈 방식으로 파일을 분할 합니다.

$ cat test

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20


$ split -n r/4 test test_ 

$ ls -l

     51 Jul 12 14:58 test

     12 Jul 12 15:19 test_aa

     13 Jul 12 15:19 test_ab

     13 Jul 12 15:19 test_ac

     13 Jul 12 15:19 test_ad


$ cat test_aa

1

5

9

13

17


$ cat test_ab

2

6

10

14

18


$ cat test_ac

3

7

11

15

19


$ cat test_ad

4

8

12

16

20



r/K/N : (N)등분으로 파일을 분할 할 때 라운드 로빈 방식으로 분할한 (K)번째를 출력합니다. (파일은 생성되지 않습니다.)

$ split -n r/2/4 test test_

2

6

10

14

18


--help : 도움말을 출력한다.

--version : 버전 정보를 출력한다.

'Server > 명령어' 카테고리의 다른 글

[Linux] dd 명령어 옵션 정리  (0) 2017.07.14
[Linux] touch 명령어 옵션 정리  (0) 2017.07.13
[Linux] rmdir 명령어 옵션 정리  (0) 2017.07.11
[Linux] rm 명령어 옵션  (0) 2017.07.10
[Linux] pwd 명령어 옵션 정리  (0) 2017.07.05
블로그 이미지

§§

내 주머니속 작은 수첩

,