передать строку с непечатаемым символом в шестнадцатеричном формате в

Вы были почти там.

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
0
19.06.2019, 19:54
1 ответ

Заменить \xc3:\x87:\x80:\x00вместо c3:87:80:00.
Где \xпредставляют шестнадцатеричные данные

1
28.01.2020, 02:40

Теги

Похожие вопросы