Command-Line

將大文件分成小塊

  • November 27, 2018

如何將一個**+4GB的大文件分解為每個大約500MB**的小文件。

以及如何重新組裝它們以獲取原始文件?

您可以使用splitcat

例如像

$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.

(其中輸入文件名是foo,最後一個參數是輸出前綴)。這將創建類似foo.000 foo.001…的文件

帶有短選項的相同命令:

$ split -b 100k -d -a 3 foo foo

如果您希望它在行邊界上拆分,而不僅僅是確切的字節數,您還可以指定“–line-bytes”。

要再次重新組裝生成的零件,您可以使案例如:

$ cat foo.* > foo_2

(假設 shell 對 shell globbing 的結果進行排序 - 並且元件的數量不超過系統相關的參數限制)

您可以通過以下方式比較結果:

$ cmp foo foo_2
$ echo $?

(應該輸出 0)

或者,您可以使用 find/sort/xargs 的組合來重新組裝這些片段:

$ find -maxdepth 1 -type f -name 'foo.*'  | sort | xargs cat > foo_3

引用自:https://unix.stackexchange.com/questions/1588