поменять местами поля в именах файлов

поменять местами поля в именах файлов

Как мне сделать следующее изменение в именах файлов. Я предполагаю, что это возможно с помощью rename, но я не знаю как.

A_B_C.pdf

к

C_A_B.pdf

A, Bи C— это разные слова в именах моих файлов, например 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

Врасширение параметравы найдете значение %и ##.

Связанный контент