[linux] split 명령어로 파일 분할하기

반응형
반응형

용량이 큰 로그 파일을 열어서 확인해야 하는 경우가 종종 있으실 텐데요. 

용량이 아주 큰 경우 파일 여는데에만 한참 걸리고 특정 구문을 찾는 것도 쉽지가 않습니다.

이럴 때, split 명령어를 이용하시면 원하는 크기 또는 라인 단위로 파일을 쪼개서 사용을 할 수 있습니다.

 

그럼 다양한 예제를 통해 사용 방법을 확인해 보도록 하겠습니다.

예제에 사용할 로그 파일명은 "test_log'이며 총 11298 라인으로 이루어져 있고 크기는 1M입니다. 

 

예제 1. split [파일명]

[root@linux-1 tmp]# split test_log

 

- x로 시작하는 파일이 12개 생생되었습니다.

[root@linux-1 tmp]# ls
test_log  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak  xal

 

- 11개의 파일은 각 1000개의 라인으로 이루어져 있고, 마지막 파일만 298라인입니다.

[root@linux-1 tmp]# cat xaa | wc -l
1000
[root@linux-1 tmp]# cat xab | wc -l
1000
[root@linux-1 tmp]# cat xac | wc -l
1000
[root@linux-1 tmp]# cat xad | wc -l
1000
[root@linux-1 tmp]# cat xae | wc -l
1000
[root@linux-1 tmp]# cat xaf | wc -l
1000
[root@linux-1 tmp]# cat xag | wc -l
1000
[root@linux-1 tmp]# cat xah | wc -l
1000
[root@linux-1 tmp]# cat xai | wc -l
1000
[root@linux-1 tmp]# cat xaj | wc -l
1000
[root@linux-1 tmp]# cat xak | wc -l
1000
[root@linux-1 tmp]# cat xal | wc -l
298

예제 2. split -l [라인수] [파일명]

[root@linux-1 tmp]# split -l 2000 test_log

 

- 파일 다섯 개 생성이 되었고 각각 2000라인으로 구성되어 있습니다.

[root@linux-1 tmp]# ls
test_log  xaa  xab  xac  xad  xae  xaf
[root@linux-1 tmp]# cat xaa | wc -l
2000
[root@linux-1 tmp]# cat xab | wc -l
2000
[root@linux-1 tmp]# cat xac | wc -l
2000
[root@linux-1 tmp]# cat xad | wc -l
2000
[root@linux-1 tmp]# cat xae | wc -l
2000
[root@linux-1 tmp]# cat xae | wc -l
2000
[root@linux-1 tmp]# cat xaf | wc -l
1298


예제 3. split -d -l [라인수] [파일명]

[root@linux-1 tmp]# split -d -l 2000 test_log

 

- 이번엔 생성되는 파일의 이름을 ae, ab, ac.... 말고 숫자로 변경해 보았습니다.  

[root@linux-1 tmp]# ls
test_log  x00  x01  x02  x03  x04  x05

 

예제 4. split -d -l [라인수] [파일명] [prefix]

[root@linux-1 tmp]# split -d -l 2000 test_log num_

 

 - 이번엔 생성되는 파일명을 직접 지정을 하였습니다. "num_"으로 지정을 하고 -d 옵션으로 뒤에는 숫자가 붙게 됩니다.

[root@linux-1 tmp]# ls
num_00  num_01  num_02  num_03  num_04  num_05  test_log

 

예제 5. split -d -b 100k [파일명] [prefix]

[root@linux-1 tmp]# split -d -b 100k test_log num_

 

- 이번엔 파일을 라인 단위로 분할하지 않고 크기 단위로 분할을 하였습니다.

- 메가(m), 기가(g ) 단위로도 분할을 할 수 있습니다.

[root@linux-1 tmp]# ls
num_00  num_02  num_04  num_06  num_08  num_10
num_01  num_03  num_05  num_07  num_09  test_log

 

- 크기 확인

[root@linux-1 tmp]# du -sh num_*
100K    num_00
100K    num_01
100K    num_02
100K    num_03
100K    num_04
100K    num_05
100K    num_06
100K    num_07
100K    num_08
100K    num_09
32K     num_10

 

반응형

'IT' 카테고리의 다른 글

[Linux] SSL 인증서 만료일 확인  (0) 2020.06.17
[Linux] find 명령어 예제  (0) 2020.06.16
[Linux] Apache(아파치) rotatelogs 설정  (0) 2020.06.08
[IT생할] 원격데스크톱 연결  (0) 2020.06.03
[Linux] NFS 서버 구축  (0) 2020.05.31

댓글

Designed by JB FACTORY

loading