我想使用linux重命名10个文件。
now.jpg到spy_.html
剩下的9个应该是
现在jpg.1转到spy_html.1
现在jpg.2转到spy_html.2
以此类推。
到目前为止,我想出了如下结论:
for f in *.jpg
do
mv “$f” “(“%s”%p”%i”%o”%n”%_).html”
done但不起作用。任何小费都会得到赏识。
发布于 2017-11-09 15:36:18
您可以使用正则表达式捕获可选的数字扩展名并将其添加到目标文件名中。这应该适用于bash:
for f in *.jpg*
do
if [[ $f =~ now\.jpg(\.[0-9])? ]]; then
mv "$f" "spy.html${BASH_REMATCH[1]}"
fi
done假设你想要spy.html[.#]。如果您希望对具有数字扩展名的文件(即spy_html.1 )使用下划线,则可以更容易地发出两个命令,一个用于now.jpg,一个用于now.jpg.*。
https://stackoverflow.com/questions/47203964
复制相似问题