unix move命令正则表达式

时间:2013-07-09 17:04:10

标签: regex unix filenames mv

我有一堆格式为

的文件

blahblah1.java.bakblahblah2.java.bak

我想将所有以.bak结尾的文件更改为.java。是否可以使用mv命令执行此操作?也许像mv (.*\.java)\.bak $1

1 个答案:

答案 0 :(得分:1)

有什么问题
for i in *java.bak ; do mv "$i" `basename "$i" .bak` ; done

for i in *java.bak ; do mv "$i" "${i%.bak}" ; done

如果你在bash。命令行文件匹配与bash中的正则表达式(例如Perl或=~比较不完全相同,并且您无法捕获组。请注意差异:例如,*.具有非常不同的含义。