首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个扩展名相同的文件的批重命名

多个扩展名相同的文件的批重命名
EN

Stack Overflow用户
提问于 2016-11-30 14:56:30
回答 1查看 55关注 0票数 0

我需要重命名多个文件,而不知道文件的文件名(basename/string名称)。

我试过:

代码语言:javascript
复制
for i in $(ls /Users/Destiny/Desktop/Index/*.ebwt); 
do 
    mv -v "$i" "${i/hsa/hsa.genome.V86C}"; ## works when i know the string to replace
done

但是,如果不知道文件名(字符串名)怎么办?

重命名前 hsa.1.ebwt hsa.2.ebwt hsa.3.ebwt hsa.4.ebwt hsa.2.ebwt hsa.3.ebwt hsa.4.ebwt

重命名后的 hsa.genome.V86C.1.ebwt hsa.genome.V86C.2.ebwt hsa.genome.V86C.3.ebwt hsa.genome.V86C.1.ebwt hsa.genome.V86C.2.ebwt hsa.genome.V86C.3.ebwt hsa.genome.V86C.1.ebwt hsa.genome.V86C.2.ebwt hsa.genome.V86C.3.ebwt hsa.genome.v86C.1.ebwt hsa.genome.V86C.2.ebwt hsa.genome.v86C.3.ebwt hsa.genome.V86C.4.ebwt

EN

回答 1

Stack Overflow用户

发布于 2016-11-30 16:30:42

你可以在你的目录中找到一些东西。如果它们都有相同的扩展,那么在您当前的操作中,可能会出现下面这样的情况:

代码语言:javascript
复制
find /Users/Destiny/Desktop/Index -type f -name "*.ebwt" | while read file; 
do 
mv -v "$file" "${file/hsa/hsa.genome.V86C}"; 
done 

这将在当前目录中重命名它,如果您想稍后将它移到另一个目录中,可以用basename包围第二个参数,以使移动更容易:

代码语言:javascript
复制
"/SomeDirectory/$(basename ${file/hsa/hsa.genome.V86C})"

如果不希望查找目录是递归的,也可以在要查找的目录后面放置一个-maxdepth 1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40891478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档