
ファイル名を次のように変更するにはどうすればよいでしょうか。 で可能だと思います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 番目のペアは によって再現され$1
、2 番目のペアは によって再現されます$2
。
-n
出力に満足したら、を削除します。
シェル スクリプトを使用した同様のアプローチ:
for file in *.pdf; do
f12=${file%_*}
f3=${file##*_}
f3=${f3%.pdf}
mv -- "$file" "${f3}_${f12}.pdf"
done
でパラメータ拡張%
との意味が分かります##
。