2009-03-05 4 views
0

출력에 무한 수의 선을 생성하는 코드가 있습니다. 따라서 이러한 값을 단일 출력 파일에 저장할 수 없습니다.긴 입력을 여러 텍스트 파일로 분할

대신 출력 파일을 더 많은 파일로 분할합니다. 색인 번호에 따라 파일을 분할합니다. 이제 나의 의심은 내 파일이 얼마나 많은 숫자를 가질 지 모르겠다. 그래서 색인을주지 않고 파일을 다른 출력으로 나눌 수 있습니까? 예를 들어 : n.txt 옆 200,000 100,001에서 m.txt

  • 에서

    • 처음으로 10 만 개 라인
  • +0

    그냥 bash를 사용하고 계십니까? – dusoft

    +0

    예, 사용중인 언어를 아는 것이 도움이됩니다. –

    답변

    1

    당신을 기반으로 특정 라인을 찾을 수있을 필요가없는 경우 파일 이름을 입력하면 파일 크기에 따라 출력을 나눌 수 있습니다. 다음 줄에서> 1MB가 될 때까지 m1.txt에 줄을 씁니다. 다음 파일 - m2.txt로 이동하십시오.

    0

    실행 인덱스가있는 파일을 생성하십시오. 예 : 여는 것으로 시작하십시오. m_000001.txt. 해당 파일에 고정 된 누벨 줄을 씁니다. 파일을 닫으십시오. 다음 파일 열기 (예 : m_000002.txt를 입력하고 계속하십시오.

    디스크 오버플로를 방지하려면 별도로 수행해야하는 하우스 키핑 작업이 필요합니다. 여기서 백업, 압축, 파일 순환 등을 생각할 수 있습니다.

    0

    이 목적으로 logrotate을 사용할 수 있습니다. 옵션이 많습니다 : 매뉴얼 페이지를 확인하십시오.

    "logrotate is designed to ease administration of systems that generate 
    large numbers of log files. It allows automatic rotation, compression, 
    removal, and mailing of log files. Each log file may be handled daily, 
    weekly, monthly, or when it grows too large." 
    
    1

    분할 (1) 정확하게 작업을위한 도구로 나타납니다

    다음은 man 페이지의 도입입니다. 쓰는 동안 분할

    0

    4 가지 방법 :

    A)에는 문자 (크기)

    B)의 고정되지는 시간 간격 고정

    C)

    를 작성하기 전에 라인

    전혀 해결하지 D) 쓰기를 호출하기 전에 함수의 고정 카운터

    이러한 분할을 기반으로 출력 파일의 이름을 지정할 수 있습니다.

    관련 문제