2016-11-15 4 views
1

멀티 라인 영숫자 문자열을 포함하는 file이 바이트 크기로 작은 하위 파일로 분할된다고 가정하십시오. 서브 파일은 숫자로 레이블됩니다.바이트 단위로 파일을 분할 할 때 예기치 않은 동작

$ split -d -b 100 file subfile 

결과 서브 파일은 서브 파일 89까지 예상대로 레이블링되지만 레이블링 패턴은 변경됩니다. 흥미롭게도, 하위 파일 9899에서 레이블 지정 패턴이 다시 변경됩니다!

$ ls 
file 
subfile00 
subfile01 
... 
subfile89 
subfile9000 # sic! 
subfile9001 
... 
subfile9899 
subfile990000 # sic! 
subfile990001 
... 

이 패턴은 저에게 이상합니다. 바이트 크기로 파일 file을 분할하고 0에서 x까지 연속적으로 레이블이 지정된 서브 파일을 수신하는 방법이 있습니까? 여기서 x는 총 분할 수입니까?

편집 1 : 기본 컨트롤에 의해

$ split --version 
split (GNU coreutils) 8.25 
+0

'0'즉 'file001','file002','file100'이있는 파일을 사용해도 되니? – Inian

+0

@Inian 예, 괜찮습니다. 따라서, 나는 당신의 제안을 시도 할 것입니다. –

답변

2

GNU 분할 접미사 길이는 -a 옵션 (2 기본값)를 사용하여 파일에 추가 할 수 있습니다. 당신은 지나치게 타고 할 수있는 최대 숫자이 -a 옵션을 사용하여 분할 파일의 수에

-a, --suffix-length=N 
    use suffixes of length N (default 2) 

일예로 따라와 생각할 경우 분할 파일이 1 ~ 100까지 다양 할 수 있으므로 3과 함께 split 명령을 접미사 길이로 실행할 수 있습니다.

$ split -a 3 -d -b 100 file subfile 
+0

이 답변을 제공해 주셔서 감사합니다. 선행 제로가 적용되면 명명 패턴이 제대로 작동합니다. –

+0

@MichaelGruenstaeudl : 도와 드리겠습니다! – Inian