파일 이름의 필드 교환

파일 이름의 필드 교환

파일 이름을 다음과 같이 변경하는 방법. 가능할 것 같은데 rename어떻게 해야 할지 모르겠습니다.

A_B_C.pdf

도착하다

C_A_B.pdf

A, BC내 파일 이름에 다른 단어가 있습니다(예 Complete_Works_Plato.pdf: .

답변1

rename -n 's/([^_]*_[^_]*)_([^_]*).pdf/$2_$1.pdf/' *
  • [^_]*밑줄이 아닌 숫자는 제한이 없습니다.
  • ( )그룹을 캡처하세요. 첫 번째 쌍은 복사본으로 구성되고 $1두 번째 쌍은 복사본으로 구성됩니다 $2.

-n출력이 만족스러우면 삭제하세요.

쉘 스크립트에 대한 유사한 접근 방식:

for file in *.pdf; do
    f12=${file%_*}
    f3=${file##*_}
    f3=${f3%.pdf}
    mv -- "$file" "${f3}_${f12}.pdf"
done

존재하다매개변수 확장%그리고 의 의미를 발견하게 될 것입니다 ##.

관련 정보