특정 디렉토리에 있는 모든 파일의 목록을 생성하고 고정된 양의 파일 데이터가 포함된 X 목록에서 이를 잘라야 합니다.
예를 들어 95GB의 데이터가 있습니다.
- 파일 목록 생성(
total.txt
) total.txt
3개의 목록으로 분할 :slice1.txt
첫 번째 35Gb 파일 목록이 포함되어 있습니다.slice2.txt
다음 35GB 파일 목록이 포함되어 있습니다.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