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
.