如何对文件名进行以下更改。我想这是可能的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
如果您对输出满意,请删除。
shell 脚本的类似方法:
for file in *.pdf; do
f12=${file%_*}
f3=${file##*_}
f3=${f3%.pdf}
mv -- "$file" "${f3}_${f12}.pdf"
done
在参数扩展%
你会发现和的含义##
。