我无法得到这个工作:
我有数百个文件,我们的数据库开发人员愚蠢地把星号,所以我们有像这样命名的文件:
*1*_Floorplan.jpg
我需要recursion(两级)search并replace所有文件名中的“ * ”的所有实例,并用下划线“ _ ”replace它们。
我已经尝试了以下,但它失败了,输出“mv”命令的使用格式数百次(就好像每个文件它会试图处理),就像我所期望的,如果我有无效的语法,但我似乎无法find它有什么问题:
for x in `find . -regex '.*/\*.*'` ; do mv $x `echo $x | sed s/\*/_/g` ; done
这是一个Mac(10.4)系统,所以这是一个达尔文环境,如果这有什么区别。
请帮忙!
把报价放在$ x左右的地方。
for x in `find . -regex '.*/\*.*'` ; do mv "$x" `echo "$x" | sed s/\*/_/g` ; done
你需要逃避所有*的领先反斜杠\