我不能让它工作:
我有数百个文件,我们的数据库开发人员愚蠢地在其中添加了星号,因此我们的文件命名如下:
*1*_Floorplan.jpg
我需要递归(两个级别)搜索并替换*
所有文件名中“”的所有实例,并用下划线“ _
”替换它们。
我已经尝试了以下但它失败了,输出“mv”命令的使用格式数百次(就像它试图处理的每个文件一样),就像我期望的那样,如果我有无效的语法,但我似乎找不到它有什么问题:
for x in `find . -regex '.*/\*.*'` ; do mv $x `echo $x | sed s/\*/_/g` ; done
这是在 Mac (10.4) 系统上,所以它是一个达尔文环境,如果这有什么不同的话。
请帮忙!
在 $x 出现的任何地方加上引号。
您需要使用前导反斜杠 \ 转义所有 *