이미지 디렉터리 번호 이름 바꾸기

이미지 디렉터리 번호 이름 바꾸기

다음과 같이 이미지로 가득 찬 디렉토리의 이름을 바꾸려고 합니다.

test.jpg
funny.gif
sad.png
파일명.PNG
파일 naaskjas.JPG

도착하다:

1.jpg
2.gif
3.png
4.png
5.jpg

대문자-> 소문자 변환을 제외하고는 작동합니다.

i=1;
shopt -s nullglob;
for f in *.jpg *.gif *.png *.jpeg *.JPG *.JPEG *.GIF; do
    mv -- "$f" "$i.${f##*.}";
    ((i++));
done

나도 jpeg되고 싶다 jpg.

답변1

다음과 같은 것을 시도해보세요

ext=$( echo "$i.${f##*.}" | tr [AZ] [az] )
mv --“$f”$i$ext

또는 고정 길이 파일 이름.

dest=$(printf '08d%' $9)$( echo "$i.${f##*.}" | tr [AZ] [az] )
mv --“$f”$dest

답변2

검색/바꾸기를 사용할 수 있을 ${parameter/pattern/string}뿐만 아니라 ${parameter,,pattern}소문자로 변환할 수도 있습니다.

i=1;
shopt -s nullglob;
for f in *.jpg *.gif *.png *.jpeg *.JPG *.JPEG *.GIF; do
    EXT="${f##*.}"
    EXT=${EXT,,}
    EXT=${EXT/jpeg/jpg}
    mv -- "$f" "$i.${EXT}";
    ((i++));
done

답변3

두 단계:

확장 프로그램 변환:

for file in *.GIF; do mv $file ${file%GIF}gif; done
for file in *.jpeg; do mv $file ${file%jpeg}jpg; done
...

파일 수:

for file in *.gif *.jpg ...; do mv $file $i$file; ((i++)); done

답변4

(p)이름 바꾸기가 있는 경우 다음과 같이 작성할 수 있습니다.

shopt -s nullglob;

i=1; 
for f in *.{jpg,JPG,jpeg,JPEG,png,PNG,gif,GIF}; do 
    rename 's/.*\.(.*)$/'$((i++))'.\L$1/; s/jpeg$/jpg/' "$f"; 
done

관련 정보