2015-05-29 43 views
1

扩展名不同的多个文件我有不同的扩展名一堆文件,我想在他们的名字的末尾添加一个后缀:重命名的Linux

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用户)。

感谢所有帮助

回答

1

使用Extract filename and extension in Bash,我会说:

for file in * 
do 
    extension="${file##*.}" 
    filename="${file%.*}" 
    mv "$file" "${filename}-4cc8.${extension}" 
done 

这个循环遍历所有的文件,它的名字和扩展名,然后将它(即,将其重命名)移动到给定的名称在扩展之前具有额外的-4cc8值。

+1

它就像一个魅力! 祝你有个美好的一天,你做了我的。 – Portecochon

1

使用rename

rename 's/[.]([^.]+)$/-4cc8.$1/' * 

s/[.]([^.]+)$/-4cc8.$1/perl expression of the form s/PATTERN/REPLACEMENT/ 告诉rename做一个全球性的substition。

[.]([^.]+)$是一个正则表达式模式具有以下含义:

[.]  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.后跟文本相匹配的第一组中以替换匹配的文本,即任何随后文字时期。