2016-11-15 62 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 =總分割數?

EDIT 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之間變化,那麼可以使用split命令和3作爲後綴長度。

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

謝謝你的回答。如果前導零強制執行,命名模式正常工作。 –

+0

@MichaelGruenstaeudl:樂於幫忙! – Inian