【发布时间】:2012-10-21 11:49:17
【问题描述】:
假设我想将一些以 jpg.jpg 结尾的文件名更改为仅以 .jpg 结尾(在 bash 中),并且我想通过管道将 find 的输出传送到 xargs 来做到这一点:
通过使用sed:
find . -iname '*jpg.jpg' | xargs -I % mv -iv % $(echo % | sed 's/jpg.jpg/.jpg/g')
但是,这不会在mv 的目标文件中将jpg.jpg 替换为.jpg。
通过使用awk:
find . -iname '*jpg.jpg' | xargs -I % mv -iv % $(echo % | awk '{gsub(/jpg.jpg/,".jpg")}; 1')
这也没有任何替代。我错过了什么吗?
【问题讨论】: