我有一堆具有不同扩展名的文件,我想在所有名称的末尾添加一个后缀:
Fe2-K-D4.rac
Fe2-K-D4.plo
Fe2-K-D4_iso.xy
...
到
Fe2-K-D4-4cc8.rac
Fe2-K-D4-4cc8.plo
Fe2-K-D4-4cc8_iso.xy
...
我阅读了一些关于使用重命名工具更改扩展程序的帖子,但我不知道如何更改名称并保留相同的扩展名(我是最近的linus用户)。
感谢您的帮助
答案 0 :(得分:1)
使用Extract filename and extension in Bash,我会说:
for file in *
do
extension="${file##*.}"
filename="${file%.*}"
mv "$file" "${filename}-4cc8.${extension}"
done
循环遍历所有文件,获取其名称和扩展名,然后将其移动(即重命名)给定名称,并在扩展名之前加上-4cc8
值。
答案 1 :(得分:1)
使用rename
:
rename 's/[.]([^.]+)$/-4cc8.$1/' *
s/[.]([^.]+)$/-4cc8.$1/
是perl expression of the form s/PATTERN/REPLACEMENT/
告诉rename
进行全局替换。
[.]([^.]+)$
是一个正则表达式模式,具有以下含义:
[.] match a literal period
( followed by a group
[ containing a character class
^. composed of anything except a literal period
]+ match 1-or-more characters from the character class
) end group
$ match the end of the string.
替换模式-4cc8.$1
告诉rename
将匹配的文本替换为文字-4cc8.
,后跟匹配的第一个组中的文本,即文字句点后的任何内容。