我需要產生某個目錄中所有文件的列表,並將其截斷為 X 個列表,每個列表包含固定數量的文件資料。
例如,我有 95 GB 的數據。
- 產生文件列表 (
total.txt
) - 分為
total.txt
3 個列表:slice1.txt
包含第一個 35 GB 檔案的列表slice2.txt
包含以下 35 GB 檔案的列表slice3.txt
包含剩餘文件的列表
有什麼提示嗎?我用谷歌搜尋並嘗試過 find、awk、grep,但這個任務似乎確實超出了我的能力範圍。
答案1
答案2
while read filename; do cat $filename; done < total.txt | split -b 35G - slice
這將建立您可以重新命名的“sliceaa”、“sliceab”、“sliceac”。
與其他實施split
,你可能要說-b 35000m
如果你有bash,你可以寫
cat $(< total.txt) | split -b 35G - slice
假設沒有數百或數千個檔案名稱。
創造total.txt
files=(*)
printf "%s\n" "${files[@]}" > total.txt