Вы были почти там.
find $HOME/Filme -type f -name '*avi.avi' -exec \
sh -c "rename -v 's/\.avi\.avi$/.avi/'" {} \;
(Аргумент rename
является подстановкой регулярного выражения; и опция /g
будет полезна только в том случае, если вы хотите заменить каждое вхождение в соответствующем имени файла; но по определению в самом конце может быть только одно совпадение.)
Возможно, полезнее будет использовать это пакетно и, возможно, просто использовать mv
для улучшения переносимости.
find $HOME/Filme -type f -name '*avi.avi' -exec \
sh -c 'for f; do mv -v "$f" "${f%.avi}"; done' _ {} +
Если нет необходимости перемещаться по подкаталогам,
for f in $HOME/Filme/*.avi.avi; do
mv -v "$f" "${f%.avi}"
done
Заменить \xc3:\x87:\x80:\x00
вместо c3:87:80:00
.
Где \x
представляют шестнадцатеричные данные