2011-12-31 6 views
0

큰 txt 파일을 짧은 txt 파일로 나누고 싶습니다. 예를 들어 file.txt이고 700MB이고 7 개 (100MB)로 나누고 싶습니다. txt 파일.큰 파일을 짧은 파일로 나누기

어떻게해야합니까? 텍스트 파일을 열지 않고 텍스트 파일의 내용을 변경하지 않고 분할하는 방법이 있습니까? 이 문제에 대해 알려진 알고리즘이 있다면 공유하십시오. 감사

답변

2

간단한 방법 -

  1. 는 파일 길이를 가져옵니다

  2. 가 만들려는 얼마나 많은 파일을 참조하십시오 청크 크기를 결정 - (N = 파일 길이/청크 크기). 나머지가 있으면 파일 수는 n + 1이됩니다.

  3. 파일을 읽기 모드로 엽니 다.

  4. 쓰기 모드로 파일을 만듭니다.

  5. 청크 번호 (또는 나머지는 < 청크 크기 인 경우 남은 바이트)를 파일에 쓰고이 파일을 닫습니다.

  6. n 조각에 대해 4-5를 반복한다.

+0

파일 크기가 청크 크기로 균등하게 나눌 수없는 경우 최종 조각에 대해 무엇을 권하고 싶습니까? –

+0

@ Gryry - 그래.하지만 OP가 위에 구현할 수있게되면 감지 할 수 있어야합니다. P .. 진지한 메모 - 수정 중 – Nrj

+0

고마워요. 꼬리 상태를 처리하는 것은 항상 나를 위해 성가신되었습니다. –

2

당신이 유닉스

에있는 경우

split -b100m filename part이 parta,을 partB, partc 등으로 파일 이름을 분할합니다

사용자 환경과 요구에 적용 이런 경우에
7

는 표준 유닉스 솔루션은 split을 사용하는 것입니다 :

split -C 100M input.txt 

-C 분할을 바이트/문자 대신 줄로 나누십시오. 특정 바이트로 분할하려는 경우 -b을 대신 사용하십시오.

0

경우에 따라 크기 및 줄 수 (경우에 따라 필요함)로 분할하는 옵션을 모두 갖고 Windows 환경에있는 경우 GSplit이라는 프로그램을 사용할 수 있습니다. 한 번이 문제가 있었고 그것은 나를 위해 일했습니다. 다운로드 할 수 있습니다.

0

유닉스에 있지 않은 경우 Perl 배포판에 분할 유틸리티가 포함되어 있습니다. 줄 분리에 -l을 사용합니다.

관련 문제