접두사 및 접미사에서 파일 이름 바꾸기

접두사 및 접미사에서 파일 이름 바꾸기

일괄 이름 바꾸기를 시도하는 일련의 미디어 파일이 있습니다.

001 - 01x01 - mediaTitle1.avi
002 - 01x02 - mediaTitle2.avi
003 - 01x03 - mediaTitle3.avi

내가 원하는 것은 출력입니다.

Series Title S01 E01 - mediaTitle1.avi
Series Title S01 E02 - mediaTitle2.avi
Series Title S01 E03 - mediaTitle3.avi

나는 이것을 시도하고 있습니다 :

for f in *01x*; do echo mv -v "$f" "Series Title S01 E{f#1}"; done

그러나 그것은 실패했습니다. 그래서 파일의 끝을 유지하고 각 파일의 시작 부분을 바꾸고 싶습니다

답변1

가까운 사이였지만 $변수 확장을 잊어버렸습니다(?). 다음을 시도해 보세요.

for f in  *01x*; do mv -v -- "$f" 'Series Title S01 E'"${f#*01x}"; done

파일 이름에 공백이 있으므로 대상 파일의 작은따옴표에 유의하십시오.

답변2

cd /path/to/avidir; mkdir ../avidir2
pax -rwls '|.* - \(..\)x\(.. - \)|Series Title S\1 E\2|' *.avi ../avidir2

위 명령은 다른 디렉토리의 모든 파일에 대한 하드 링크를 생성합니다. 이를 통해 원치 않는 이름의 파일을 삭제하기 전에 모든 변경 사항이 만족스러운지 확인할 수 있습니다.

관련 정보