如何将一组文件名中所有出现的一个字符替换为另一个字符?

如何将一组文件名中所有出现的一个字符替换为另一个字符?

我有一些 OS X 文件,其中一些文件名中有连字符。我想将所有出现的连字符更改为下划线。

我如何从 OS X 上的命令行执行此操作?

所以,如果我有这个:

a.txt
b-c.txt
d_e-f.txt

我想将它们重命名为:

a.txt
b_c.txt
d_e_f.txt

答案1

在 Bash 中,使用简单的子串替换,并将所有出现的 替换-_

for f in *.txt; do mv "$f" "${f//-/_}"; done

循环将遍历.txt当前目录中的每个文件。

相关内容