일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Nodejs
- Xcode
- apple
- appres
- Android
- css
- kmip
- fido
- SwiftUI
- git
- SSH
- albumbook
- SWIFT
- OSX
- WebAuthn
- 인증
- SSL
- MFA
- MSYS2
- openssl
- 앱스토어
- otpkey
- 앨범북
- FIDO2
- OTP
- MYSQL
- 앱리소스
- 2FA
- 애플
- 안드로이드
Archives
- Today
- Total
인디노트
[bash: split, cat] 파일 분할/재조립 본문
용량이 큰 텍스트 또는 바이너리 파일을 분할하거나 재조립할 필요가 있을 때, 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
반응형
'개발 플랫폼 및 언어' 카테고리의 다른 글
우리집에 GDB 있는데… 메모리 보고갈래? (1) (0) | 2019.02.06 |
---|---|
Subnet Mask Cheat Sheet (0) | 2019.01.11 |
CentOS 7 오래된 커널 손쉽게 지우기 (0) | 2018.12.31 |
1.3. Creating a Postgres-XL cluster (0) | 2018.12.13 |
윈도우즈기반 도커에 Postgres-XL 설치하기 (0) | 2018.12.13 |
Comments