我有一堆名为这样的文件:
file.jpg?sw=450&sh=450
我想批量重命名,删除那个糟糕的扩展名并获取此内容:
file.jpg
我试过这个剧本:
for file in *'.jpg?sw=450&sh=450'; do mv "$file" "${file%}".jpg; done
还有这个脚本:
for file in *'.jpg?sw=450&sh=450'; do mv "$file" "${file%}'.jpg?sw=450&sh=450'".jpg; done
我得到的结果是什么:
file.jpg SW = 450安培; SH = 450.jpg
答案 0 :(得分:1)
Bash是一种方法,虽然我可能会考虑使用基于正则表达式重命名的rename
。考虑:
$ rename 's/\.jpg\?.*$/.jpg/' *.jpg\?*
这说:
*.jpg\?*
/\.jpg\?.*$/
.jpg