한개의 파일을 여러 파일로 (데이터 분할)

2021. 5. 2. 01:32 기타/Shell script, bash

command to split the file into multiple files

 

한개의 파일을 여러 파일로 분할하는 방법

  • 데이터의 사이즈가 너무 크게 되면 메모리에 올릴 수 없다.
  • 파일 하나를 shuf하거나 다른 작업을 할때, 메모리가 넘칠 수 있다.
  • 하나의 파일을 여러개의 파일로 분할하자
  • 파일의 개수와, 행의 개수를 지정 한다.

 

코드

awk -F'|' -v fileformat="/abc/output/file_%04d.txt" -v max=3 -v field=5 '
  NR == 1 {header = $0; next}
  ! ($field in seen) {
    seen[$field]
    if (++n % max == 1) {
      close(out)
      out = sprintf(fileformat, ++f)
      print header > out
    }
  }
  {print > out}' < /abc/input/a.txt

출처 : ourcstory.tistory.com/332?category=716432