Terminal 在终端中递归地用下划线替换破折号

Terminal 在终端中递归地用下划线替换破折号,terminal,Terminal,我能够递归地用下划线替换空格 find ./ -depth -name "* *" -execdir rename 's/ /_/g' "{}" \; 我想将-替换为.。但这是行不通的 find ./ -depth -name "* *" -execdir rename 's/-/_/g' "{}" \; 如何用\uu递归地替换-?包含空格和连字符的文件之间有很多交叉?因为,如果不是这样,您可能无法从find选项中获取所需的文件 换句话说,第二个命令查找包含空格的文件,然后用下划线替换这些文

我能够递归地用下划线替换空格

find ./ -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;
我想将
-
替换为
.
。但这是行不通的

find ./ -depth -name "* *" -execdir rename 's/-/_/g' "{}" \;

如何用
\uu
递归地替换
-

包含空格和连字符的文件之间有很多交叉?因为,如果不是这样,您可能无法从
find
选项中获取所需的文件

换句话说,第二个命令查找包含空格的文件,然后用下划线替换这些文件中的所有连字符。我想你应该这样做:

find ./ -depth -name "*-*" -execdir rename 's/-/_/g' "{}" \;
#                      ^
#                note this bit