递归地用减号替换下划线但仅适用于某些扩展?
Replace underscore with minus recursively but only for certain extensions?
我想用减号替换文件夹及其子文件夹中文件的所有下划线,并且我只想包含 jpg、JPG 和 png。一开始我尝试了 rename '/_/-/g' ./*
但不包括子文件夹。我该怎么做?
谢谢
在 Linux 上,您可以通过 "find":
遍历文件夹
找到。 -name "*.pdf" -type f -exec #rename command here, current filename is "{}"# \;
编辑:忘记\;
Globstar 允许您匹配文件夹中或文件夹下任何位置的文件。 ${f//_/-}
是一个bash "Pattern substitution":它替换$f
的值,模式前的双斜杠表示替换所有匹配。
shopt -s globstar
for f in **/*.jpg **/*.JPG **/*.png
do
mv "$f" "${f//_/-}"
done
我的系统不支持rename
这种语法,所以我不能给你很好的使用建议,但你也可以使用globstar为它生成文件名。
我想用减号替换文件夹及其子文件夹中文件的所有下划线,并且我只想包含 jpg、JPG 和 png。一开始我尝试了 rename '/_/-/g' ./*
但不包括子文件夹。我该怎么做?
谢谢
在 Linux 上,您可以通过 "find":
遍历文件夹找到。 -name "*.pdf" -type f -exec #rename command here, current filename is "{}"# \;
编辑:忘记\;
Globstar 允许您匹配文件夹中或文件夹下任何位置的文件。 ${f//_/-}
是一个bash "Pattern substitution":它替换$f
的值,模式前的双斜杠表示替换所有匹配。
shopt -s globstar
for f in **/*.jpg **/*.JPG **/*.png
do
mv "$f" "${f//_/-}"
done
我的系统不支持rename
这种语法,所以我不能给你很好的使用建议,但你也可以使用globstar为它生成文件名。