
Как мне сделать следующее изменение в именах файлов. Я предполагаю, что это возможно с помощью 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
Врасширение параметравы найдете значение %
и ##
.