我的 Linux 机器上有很多文件,文件名如下:
Veillonella-sp.-AF13-2-AF13-2.Scaf1.faa
Weissella-cibaria-strain-AM27-24-AM27-24.Scaf1.faa
Streptococcus-salivarius-strain-AF24-6AC-AF24-6AC.Scaf1.faa
文件名有一部分重复。我只想拥有唯一的名称。我想编辑这个文件名,使其只有这个:
Veillonella-sp.-AF13-2.faa
Weissella-cibaria-strain-AM27-24.faa
Streptococcus-salivarius-strain-AF24-6AC.faa
您能告诉我一种编辑这些文件名的方法吗?
我的Linux发行版是CentOS
谢谢!
答案1
使用 Perl 实现rename
:
rename -v 's/(-\w+?-\d+?)\1/$1/' *.faa
这将删除当前目录中-word-digits
与 匹配的任何文件名中的任何重复项。*.faa
它通过匹配-\w+?-\d+?
, ie -word-digits
,然后再次匹配相同的字符串来实现这一点。这样的匹配将仅被字符串的第一个实例替换。
答案2
rename 's/-2-AF13-2.Scaf1.//' *.faa