패턴을 기준으로 파일 이름 바꾸기

패턴을 기준으로 파일 이름 바꾸기

중복 가능성:
일괄 이름 바꾸기 파일

다음과 같은 이름의 파일이 6개 있다고 가정해 보겠습니다.

1.a, 1.b, 1.c
2.a, 2.b, 2.c

여기서 a, b, c는 sh, txt 등과 같은 파일 확장자입니다.

1.a, 1.b, 1.c이제 say 및 를 사용하여 5.a, 5.b, 5.c파일 이름을 바꾸고 싶습니다 . 여기 및 는 모두 사용자가 제공한 입력입니다.2.a, 2.b, 2.c6.a, 6.b and 6.c26

답변1

시도하지는 않았지만 작동할 것입니다

$ rename 's/1/5/' 1.*
$ rename 's/2/6/' 2.*

매뉴얼 페이지 이름 바꾸기

답변2

이 문제를 해결하는 bash 함수는 다음과 같습니다.

do_rename() {
   oldnum=$1 # assign parameters for clarity
   newnum=$2

   for f in "$oldnum".*; do # get all files matching the old number
       mv "$f" "$newnum"."${foo##*.}" # use a parameter expansion to get the exetension of the current filename
   done
}

답변3

일방 통행:

#!/bin/bash

for num in 1 2
do
    read -p "Enter new val for files starting with $num :" val
    for i in ${num}*.[abc]
    do
            ext=${i##*.}
            mv $i "$val.$ext"
    done
done

관련 정보