交換檔案名稱中的字段

交換檔案名稱中的字段

如何對檔案名稱進行以下更改。我想這是可能的rename,但我不知道如何。

A_B_C.pdf

C_A_B.pdf

ABC在我的文件名中是不同的單詞,例如Complete_Works_Plato.pdf

答案1

rename -n 's/([^_]*_[^_]*)_([^_]*).pdf/$2_$1.pdf/' *
  • [^_]*任意數量的非底線。
  • ( )捕獲一組。第一對由 複製$1,第二對由 複製$2

-n如果您對輸出滿意,請刪除。

shell 腳本的類似方法:

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

參數擴充%你會發現和的含義##

相關內容