터미널을 사용하여 특정 번호가 매겨진 파일의 이름 바꾸기

터미널을 사용하여 특정 번호가 매겨진 파일의 이름 바꾸기

1부터 20까지 번호가 매겨진 일련의 파일이 있고 터미널은 다음과 같이 파일을 정렬합니다.

episode1.txt
episode10.txt
episode11.txt
episode12.txt

숫자 앞에 0을 삽입하여 파일 1-9의 이름을 바꾸고 싶습니다. 내 코드는 다음과 같습니다

for file in episode{1-9}.txt
do
   rename -vs "episode"* "episode0"*
done

또한 'mv' 명령을 시도했지만 작동하지 않습니다. 누구든지 어떤 제안이 있습니까? 미리 감사드립니다

답변1

시퀀스를 열거하려면 {x..y}대신을 사용합니다 {x-y}.

모든 파일의 이름이 매우 유사하므로 매개변수 확장을 사용하여 접두사를 잘라 episode내고 episode0.

전체 명령은 다음과 같습니다.

for file in episode{1..9}.txt
do
    mv "$file" "episode0${file#episode}"
done

${file#episode}이 경우 file일치하는 가장 짧은 접두사 패턴을 제거하면서 매개변수를 확장하는 매개변수 확장입니다 episode.

관련 정보