繁体   English   中英

如何在特定文件夹中使用bash脚本重命名文件

[英]How do I rename files with bash script in a particular folder

这是我正在使用的脚本,尚未完成工作

 cp -rv app/build/outputs/apk/!(*unaligned*).apk  output/

   #rename file after copy

   for file in *.apk;
   do
   mv "$file" "$name-$appName".apk
   done

基本上我想将所有文件从一个文件夹复制到另一个文件夹,然后重命名所有文件,复制效果很好。

该文件的当前名称带有下划线(_),但我想重命名使用(-)破折号。

原始文件: name_appName_1.0_debug.apk

预期结果: name-appName-1.0-debug.apk

我对regex并不是很满意,因为当我在Mac上运行相同的脚本时,它运行良好,但是我正在构建服务器上执行此操作。

您可以使用findrename命名快速进行rename

在您的cp行之后:

find output/ -execdir rename 's/_/-/g' '{}' \+

find将以递归方式遍历目录output ,并传递找到的内容进行重命名。 那里的表达式非常简单,实际上只是分解为s/<the thing to replace>/<what it will be replaced with/g替换的东西。最后的g表示替换所有出现的情况。 省略g只会替换文件名中的第一个匹配项。 {}find的所有内容的令牌。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM