
Como posso fazer a seguinte alteração nos nomes dos arquivos. Suponho que isso seja possível com rename
, mas não sei como.
A_B_C.pdf
para
C_A_B.pdf
A
, B
e C
são palavras diferentes em meus nomes de arquivos, como Complete_Works_Plato.pdf
, por exemplo.
Responder1
rename -n 's/([^_]*_[^_]*)_([^_]*).pdf/$2_$1.pdf/' *
[^_]*
Qualquer número de não sublinhados.( )
Captura um grupo. O 1º par é reproduzido por$1
e o 2º par por$2
.
Remova o -n
se estiver satisfeito com o resultado.
Uma abordagem semelhante com shell script:
for file in *.pdf; do
f12=${file%_*}
f3=${file##*_}
f3=${f3%.pdf}
mv -- "$file" "${f3}_${f12}.pdf"
done
Emexpansão de parâmetrosvocê encontra o significado de %
e ##
.