본문 바로가기

파일을 작은 조각으로 분할(split), 주어진 argument에 의한 파일 분할(csplit)

1) 파일분할

split 명령어의 문장 형식은 다음과 같다.

% split [-n] [-number] [infile [outfile]]
options
-n 화일을 n라인씩 분할하며 이 옵션을 생략하면 1000라인씩 분할
 
위의 문장은 infile을 읽어서 number 수 만큼씩 라인을 분리하며(기본값은 1000라인) outfile 이름에 aa문자를 첨부하고 계속 이어서 ab, ac, ......와 같은 파일 이름을 첨부하여 여러 개의 파일로 분할된다.

파일을 분할할 때 출력 파일 이름을 지정하지 않으면 출력 파일의 이름을 'x' 문자와 계속해 서 두 문자를 사용하여 만들어진다. 처음 출력 파일 이름은 'xaa'이고 두 번째는 'xab'이고, 세 번째부터는 'xac'.....'xaz'이고 다음은 'xba'....'xzz'이다. 출력 파일 이름을 지정하면 지정된 출력 파일 이름 뒤에 이어서 'aa', 'ab',.... 문자가 첨부되어 파일 이름이 결정된다.

 
【예제】 
    % ls -l 
    -rw-------  1 jijoe        4811 Jul 17 16:13 sample 
    % split -100 sample 
    % ls -l 
    -rw-------  1 jijoe        4811 Jul 17 16:13 sample 
    -rw-------  1 jijoe        2956 Jul 17 16:46 xaa 
    -rw-------  1 jijoe        1855 Jul 17 16:46 xab 
    %  
 
【예제】 
    % ls -l 
    -rw-------  1 jijoe        4811 Jul 17 16:13 sample 
    % split -50 sample joe 
    % ls -l 
    -rw-------  1 jijoe        4811 Jul 17 16:13 sample 
    -rw-------  1 jijoe        1174 Jul 17 16:15 joeaa 
    -rw-------  1 jijoe        1782 Jul 17 16:15 joeab 
    -rw-------  1 jijoe        1600 Jul 17 16:15 joeac 
    -rw-------  1 jijoe         255 Jul 17 16:15 joead 
2) 분할된 파일의 복구

파일 이름 뒤에 'aa', 'ab', 'ac' 등의 문자가 붙어 있는 경우에는 커다란 파일을 여러 개의 작은 파일로 분리한 파일이며, 사용자가 다운 받기 쉽도록 만들어 놓은 것이다. 작은 각각의 파일을 다운 받으면 'cat' 명령어를 사용하여 각 파일들을 다시 큰 파일로 복구한다.

 
【예제】 
    % ls -l 
    -rw-------  1 jijoe        2956 Jul 17 16:46 xaa 
    -rw-------  1 jijoe        1855 Jul 17 16:46 xab 
    % cat x?? > sample 
    -rw-------  1 jijoe        4811 Jul 17 16:54 sample 
    -rw-------  1 jijoe        2956 Jul 17 16:46 xaa 
    -rw-------  1 jijoe        1855 Jul 17 16:46 xab 
     
【예제】 
    % ls -l 
    -rw-------  1 jijoe        1174 Jul 17 16:15 joeaa 
    -rw-------  1 jijoe        1782 Jul 17 16:15 joeab 
    -rw-------  1 jijoe        1600 Jul 17 16:15 joeac 
    -rw-------  1 jijoe         255 Jul 17 16:15 joead 
    % cat joe?? > sample 
    % ls -l 
    -rw-------  1 jijoe        1174 Jul 17 16:15 joeaa 
    -rw-------  1 jijoe        1782 Jul 17 16:15 joeab 
    -rw-------  1 jijoe        1600 Jul 17 16:15 joeac 
    -rw-------  1 jijoe         255 Jul 17 16:15 joead 
    -rw-------  1 jijoe        4811 Jul 17 16:25 sample 
    % 
 
【예제】분할 
% ls -l 
-rw-r--r--   1 jijoe    junik        252  5월  2일  10:54 zz 
% cat zz 
paragraph1 
This is tha first line. 
This is the second line. 
this is the third line. 
paragraph2 
This is tha first line. 
This is the second line. 
this is the third line. 
paragraph3 
This is tha first line. 
This is the second line. 
this is the third line. 
% csplit -f test zz /paragraph1/ /paragraph2/ /paragraph3/ 
0 
84 
84 
84 
% ls -l 
-rw-r--r--   1 jijoe    junik          0  5월  2일  10:55 test00 
-rw-r--r--   1 jijoe    junik         84  5월  2일  10:55 test01 
-rw-r--r--   1 jijoe    junik         84  5월  2일  10:55 test02 
-rw-r--r--   1 jijoe    junik         84  5월  2일  10:55 test03 
-rw-r--r--   1 jijoe    junik        252  5월  2일  10:54 zz 
%  
 
【예제】복구 
% cat test0[0-3] > yy 
% ls -l 
-rw-r--r--   1 jijoe    junik          0  5월  2일  10:55 test00 
-rw-r--r--   1 jijoe    junik         84  5월  2일  10:55 test01 
-rw-r--r--   1 jijoe    junik         84  5월  2일  10:55 test02 
-rw-r--r--   1 jijoe    junik         84  5월  2일  10:55 test03 
-rw-r--r--   1 jijoe    junik        252  5월  2일  11:28 yy 
-rw-r--r--   1 jijoe    junik        252  5월  2일  10:54 zz 
% cat yy 
paragraph1 
This is tha first line. 
This is the second line. 
this is the third line. 
paragraph2 
This is tha first line. 
This is the second line. 
this is the third line. 
paragraph3 
This is tha first line. 
This is the second line. 
this is the third line. 
% 

728x90

댓글