[bash: split, cat] 파일 분할/재조립 리눅스 bash script


용량이 큰 텍스트 또는 바이너리 파일을 분할하거나 재조립할 필요가 있을 때, split 명령과 cat 명령을 활용하면 되겠다. 

split 명령의 형식은 아래와 같다. 

split [options] file prefix

우선 텍스트 파일을 분할해 보자. 예를 들어 myfile.txt 파일을 100행 단위로 잘게 나누어 myfile_part로 시작되는 파일명으로 저장하는 경우다. 터미널창에서 아래와 같이 입력해 보자. -l 옵션으로 나눌 행(line) 단위를 지정하면 된다. 

split -l 100 myfile.txt myfile_part

나누어진 결과는 myfile_partaa, myfile_partab,... 이런 식으로 저장된다. 

기본 순서가 aa, ab, ac 이런식으로 정해지는데 알파벳이 싫으면 수자를 이용해서 00, 01, 02 이런 식으로 순서를 표시할 수도 있다. -d 옵션을 사용.

split -d -l 100 myfile.txt myfile_part

결과 파일은 myfile_part00, myfile_part01,... 이런 식이 될 것이다.

만약 번호 자리수를 늘리려면 -a 옵션을 사용하자. -a 3 이렇게 하면 세자리로 늘어난다.

split -d -a 3 -l 100 myfile.txt myfile_part

결과 파일은 myfile_part000, myfile_part001,... 이런 식이다.

바이너리 파일은 행 단위가 아니라 바이트(byte) 단위로 분할한다. -l 옵션 대신 -b 옵션을 사용하면 되겠다. 크기 설정에 킬로(k), 메가(m), 기가(g) 등 단위도 사용 가능.

myfile.bin 파일을 100kb 단위로 분할하는 예시는 아래와 같다. 

split -d -a 3 -b 100k myfile.bin myfile_part


재조립 요령은 텍스트/바이너리 상관 없이 동일하게 cat 명령을 사용하면 된다. 앞의 예시에서 분할된 파일을 재조립하려면 터미널창에서 아래와 같이 입력한다. 
 
cat myfile_part* > myfile_merged

마음의 평화를 위해 파일 순서를 명시적으로 맞추고 싶다면 아래와 같이 sort 명령을 같이 사용할 수도 있긴 한데, 굳이 이렇게 하지 않아도 큰 문제 없이 잘 합쳐지는 것 같다.

ls myfile_part* | sort | xargs cat > myfile_merged



핑백

  • [bash: split, cat] 파일 분할/재조립 | 웹마짱구's 블로그 2017-11-14 15:00:17 #

    ... http://bahndal.egloos.com/456590</a> 용량이 큰 텍스트 또는 바이너리 파일을 분할하거나 재조립할 필요가 있을 때, split 명령과 cat 명령을 활용하면 되겠다. split 명령의 형식은 아래와 같다. split [options] file prefix 우선 텍스트 파일을 분할해 보자. 예를 들 ... more

  • 반달가면 : 리눅스에서 여러개로 분할된 tar 압축 파일 풀기 2018-08-29 22:25:45 #

    ... 기본적인 내용은 이전 게시물을 참고하자. 여기로 tar 압축 파일을 split 명령으로 여러개로 분할해 놓았을 경우(split에 대한 내용은 이전 게시물을 참고하자. 여기로), 하나의 파일로 합친 후에 압축을 풀어야 한다. 아래의 예시를 보자. # 압축 파일 확인 ls my_data.tar.gz.aa my_data.tar.gz.ab ... more

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

1441045
3392
1828172

ad_widget_2