[linux] split 명령에서 -n option

  • linux에서 split 명령에서 -n 옵션으로 하나의 파일을 k개의 파일로 나눌 수 있다. 아래와 같이 하면 입력 파일을 10개의 파일로 나눈다. 
split -n 10 input_file.txt output_file_prefix
  • 이 때, 라인의 중간에서 파일이 나뉘어질 수 있고, 공교롭게도 한글 같은 multi-byte character의 중간에서 나뉘어질 수도 있다. 이렇게 되면, 한글이 깨지게 된다. 
  • 라인 중간에서 분리되는 것을 막기 위해서, 다음과 같이 -n l/10 와 같이 하면 10개 파일로 분리하되, 라인 중간에서는 분리하지 않도록 한다.
split -n l/10 input_file.txt output_file_head
  • 아래와 같이 하면 input_file.txt를 10개의 파일로 나누돼, 라인은 유지하면서 나누게 된다. 그리고 생성된 파일은 숫자로 구분하고 (--numeric-suffixes=0), 5자리 숫자가 파일에 붙게 된다. (--suffix-length=5)
split -n l/10 --numeric-suffixes=0 --suffix-length=5 input_file.txt  output_file_prefix


참고 사이트: https://stackoverflow.com/questions/2016894/how-to-split-a-large-text-file-into-smaller-files-with-equal-number-of-lines

댓글

이 블로그의 인기 게시물

utf-8과 utf8