Felder in Dateinamen vertauschen

Felder in Dateinamen vertauschen

Wie kann ich die folgenden Änderungen an Dateinamen vornehmen? Ich nehme an, dass dies mit möglich ist rename, aber ich weiß nicht wie.

A_B_C.pdf

Zu

C_A_B.pdf

A, Bund Cin meinen Dateinamen sind verschiedene Wörter, wie Complete_Works_Plato.pdfzum Beispiel .

Antwort1

rename -n 's/([^_]*_[^_]*)_([^_]*).pdf/$2_$1.pdf/' *
  • [^_]*Beliebig viele Zeichen, die keine Unterstriche sind.
  • ( )Erfasst eine Gruppe. Das 1. Paar wird durch $1und das 2. Paar durch reproduziert $2.

Entfernen Sie es -n, wenn Sie mit der Ausgabe zufrieden sind.

Ein ähnlicher Ansatz mit Shell-Skript:

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

InParametererweiterungSie finden die Bedeutung von %und ##.

verwandte Informationen