假设我想要通过管道将
使用
然而,这并不会在 mv 的目标文件中将 jpg.jpg 替换为 .jpg。通过使用 awk:
这并没有进行任何替换。我有遗漏什么吗?
find
的输出传递给 xargs
(在 bash 中),并且我希望更改一些以 jpg.jpg
结尾的文件名,使其仅以 .jpg
结尾:使用
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')
这并没有进行任何替换。我有遗漏什么吗?
xargs
无论如何都会在空格处分割文件名,那么强调这些细节会让人感到困惑。如果你采纳Ed的建议,也要使用... -print0 | xargs -0 ...
。 - Ben Jackson