본문 바로가기

Linux

리눅스 대용량 파일 분할하기

반응형

1GB 이상되는 CSV 파일이 있다. 해당 파일을 SQL Loader를 이용해서 DB에 밀어넣어야 하는데
PC 문제인지 중간에 자꾸 오류가 난다. 오류가 나는것도 일정한 라인에서 나는게 아니라 랜덤으로 발생하는것이
PC나 네트워크 문제가 아닌지 의심이 갔다.

업무가 급한지라 해당 의심은 일단 나중에 확인해 보기로 하고 일단 이 대용량 텍스트 파일을 나눠서 실행해야겠다는 생각이 들었다.
내가 즐겨사용하는 에디트 플러스를 통해 해당 파일을 여니 역시 에디트 플러스가 뻗어 버린다 ;;

어떻게 할까 하다가 그냥 리눅스에 해당 파일을 복사해서 파일을 분할하기로 했다.

리눅스에서 split을 이용하니 분할이 아주 잘 된다



다음은 파일 분할 방법이다.


1. 특정 사이즈로 파일 분할하기


 // 100MB 단위로 분할
[root@tourWeb1 ~]# split -b 100m test.csv

// 100Kb 단위로 분할
[root@tourWeb1 ~]# split -b 100k test.csv




2. 라인 단위로 분할


// 1000줄 단위로 분할
[root@tourWeb1 ~]# split -l 1000 test.csv

// 10만줄 단위로 분할
[root@tourWeb1 ~]# split -l 100000 test.csv



분할된 파일은 파일명 뒤에 a,b,c 와 같이 순차적으로 파일명이 정해진다.



자세한 내용은 man split 명령어를 통해 확인하세요 ~