我有一个目录,其子目录包含名称错误的图像文件,如filename.jpg.jpg我想用filename.jpg替换这个recursiveley 我试过了:
find ./ -type f -exec sed -i 's/string1/string2/g' {} \;
或
sed -i 's/foo/bar/g' *
但没有效果
谢谢
答案 0 :(得分:1)
find ./ -iname "*.jpg.jpg" -exec rename .jpg.jpg .jpg '{}' \;
如果您有一个使用perl正则表达式的rename
实用程序,请使用以下命令:
find ./ -iname "*.jpg.jpg" -exec rename 's/\.jpg\.jpg$/.jpg/' '{}' \;
答案 1 :(得分:1)
可能您可以使用内置的rename
命令。
rename 's/\.jpg\.jpg$/.jpg/' *.jpg.jpg
第一个参数是一个正则表达式,匹配以.jpg.jpg
结尾的文件名,并替换为.jpg
。
对于当前目录中格式为.jpg.jpg
的文件,第二个参数将看。
有关详细信息,请阅读手册页。