번호가 매겨진 파일 그룹의 이름을 바꿔야 하는데 번호 + 5를 수정해야 합니다. 어떻게 합니까?

번호가 매겨진 파일 그룹의 이름을 바꿔야 하는데 번호 + 5를 수정해야 합니다. 어떻게 합니까?

가능한 중복:
명령줄이나 타사 도구를 사용하여 파일 이름을 대량으로 바꾸려면 어떻게 해야 합니까?

나는 01.mp3 - 47.mp3라는 이름의 멀티미디어 프로젝트에 사용되는 47개의 .mp3 파일 그룹을 가지고 있습니다. 모든 파일은 실제로 숫자 + 5의 이름을 가져야 하므로 02.mp3는 실제로 07이 되어야 합니다. .mp3 이름이 변경된 파일은 일종의 접두사 + 번호를 가질 수 있거나 기존 파일을 방해하지 않도록 새 폴더에 쓸 수 있습니다.

나는 Ubnutu와 Windows를 마음대로 사용할 수 있습니다. 누군가 이에 대한 접근 방식을 제안할 수 있습니까?

답변1

다음과 같은 스크립트를 사용하여 awk에서 이 작업을 수행할 수 있습니다.

#!/usr/bin/awk -f
BEGIN {
    regex = "[0-9]+"
    print "mkdir new"
}
{
    if (match($8,regex)) {
        before = substr($8,1,RSTART-1);
        pattern = substr($8,RSTART,RLENGTH);
        newnumber = pattern + 5
        after = substr($8,RSTART+RLENGTH);
        printf("mv %s new/%s%.2d%s\n", $8, before, newnumber, after);
    }
}

다음 파일이 포함된 폴더가 있다고 가정합니다.

foo01
foo02
foo03
foo04
foo05
bar10.txt
bar11.txt
bar12.txt
bar13.txt
rename.awk

명령을 실행하면 ls -l|./rename.awk|sh다음과 같은 결과가 나타납니다.

new/foo06
new/foo07
new/foo08
new/foo09
new/foo10
new/bar15.txt
new/bar16.txt
new/bar17.txt
new/bar18.txt
rename.awk

물론 스크립트나 쉘 명령을 수정하여 특정 패턴에 맞게 파일 이름을 바꾸거나 다른 양만큼만 증분할 수 있습니다.

관련 정보