파일 목록을 생성하고 각각 X Mb 파일 목록 2개로 자릅니다.

파일 목록을 생성하고 각각 X Mb 파일 목록 2개로 자릅니다.

특정 디렉토리에 있는 모든 파일의 목록을 생성하고 고정된 양의 파일 데이터가 포함된 X 목록에서 이를 잘라야 합니다.

예를 들어 95GB의 데이터가 있습니다.

  • 파일 목록 생성( total.txt)
  • total.txt3개의 목록으로 분할 :
    1. slice1.txt첫 번째 35Gb 파일 목록이 포함되어 있습니다.
    2. slice2.txt다음 35GB 파일 목록이 포함되어 있습니다.
    3. slice3.txt나머지 파일 목록 포함

힌트가 있나요? 나는 검색하고 find, awk, grep을 가지고 놀았지만 이 작업은 실제로 내 능력보다 뛰어납니다.

답변1

다음을 사용해 볼 수 있습니다.나뉘다파일을 분리하는 명령:

split total.txt -b 4444160

total.txt위의 내용은 35GB 파일로 분할됩니다 .

답변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

관련 정보