【发布时间】:2023-04-09 04:02:01
【问题描述】:
是否存在独立于 shell 的 Bash 子字符串替换等价物:
foo=Hello
echo ${foo/o/a} # will output "Hella"
大多数时候我可以使用bash,所以这不是问题,但是当与find -exec结合使用时,它就不起作用了。例如,要将所有 .cpp 文件重命名为 .c,我想使用:
# does not work
find . -name '*.cpp' -exec mv {} {/.cpp$/.c}
目前,我正在使用:
# does work, but longer
while read file; do
mv "$file" "${file/.cpp$/.c}";
done <<< $(find . -name '*.cpp')
理想情况下,可以在脚本中使用的解决方案会更好!
【问题讨论】: