파일 이름의 필드 교환

파일 이름의 필드 교환

파일 이름을 다음과 같이 변경하려면 어떻게 해야 합니까? 에서는 이것이 가능하다고 생각 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

~ 안에매개변수 확장%그리고 의 의미를 찾으세요 ##.

관련 정보