여러 파일의 이름을 바꾸고, 마지막 문자를 제거하고 번호를 다시 매깁니다.

여러 파일의 이름을 바꾸고, 마지막 문자를 제거하고 번호를 다시 매깁니다.

다음 형식으로 이름이 지정된 수백 개의 파일이 있는 사진 디렉토리가 있습니다.

2013-08-02 19.21.27.jpg

처음 10자(날짜)를 유지하고 "-001" 등을 추가하고 각 날짜가 연속되도록 하고 싶습니다.

출력은 다음과 같습니다:

2013-08-02-001.jpg
2013-08-02-002.jpg
2013-08-03-001.jpg

등.

그런 다음 다음을 사용하여 jpg 크기를 조정할 계획입니다.

for file in *.jpg; do convert $file -resize 900x900\> 900x900-$file; done

답변1

가장 쉬운 방법은 아마도 Perl의 해시를 사용하는 것입니다.

perl -e '
    for (<*.jpg>){
        $date = substr($_,0,10);
        $counts{$date}++;
        rename $_ => "$date-".sprintf "%03d",$counts{$date}.".jpg";
    }
'

하지만 이 코드는 테스트되지 않았음을 주의하세요. 먼저 더미 파일에서 시도해 보세요.

관련 정보