반응형

출처 : http://www.joon.pe.kr/blog/161

출처: http://bigsun84.tistory.com/310



제목그대로 입니다.어떤 이유에서건 가끔가다 큰화일을 분할해야할때가 있을 때 유용합니다.
$split -b 300k 
하면 300k씩화일부할됩니다. man 페이지에보면 화일이름까지 정할수 있습니다. 합칠때는
$cat 분활된 화일이름 > 합칠화일이름 
예> 
만약 linux.tar.gz 1G가 있을때
$split -b 100m 
하면 xxa xxb xxc 이런식으로 100메가씩나눠집니다. 
합칠때 
$cat xx* > linux2.tar.gz 하면 화일이 합쳐집니다. 
더자세한건 man split 해보세요.


ex)

split --additional-suffix=.ts -n 8 -a 3 ./refregiator.ts ref_

split --additional-suffix=.raw -b 19200000 -a 5 ./test_temp.raw test_audio_


pcm 분할

split --additional-suffix=.raw -b 320000 -a 5 ./test_temp.raw test_audio_


-a 분할되는 파일 뒤에 붙는 넘버링의 자릿수

-b 분할파일의 바이트 수

-n n등분



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 : 버전 정보를 출력한다.



출처: http://bigsun84.tistory.com/310 [순수한놈 블로그]

반응형

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

리눅스에서 파일 확장자 명 일괄 수정하기  (0) 2014.03.15
가상 메모리 통계 표시(vmstat )  (0) 2013.02.02
mount -o loop 옵션  (0) 2011.10.18
Posted by Real_G