Я хотел бы исправить неправильную кодировку для тысяч файлов.Ошибка всегда одна и та же, неизвестный символ должен быть заменен на французский é
.
$ find . -type f | grep 127427
./documents/1778_commande_127427_accus�_de_r�ception.pdf
$ find . -type f | grep 127427 | hexdump -C
00000000 2e 2f 64 6f 63 75 6d 65 6e 74 73 2f 31 37 37 38 |./documents/1778|
00000010 5f 63 6f 6d 6d 61 6e 64 65 5f 31 32 37 34 32 37 |_commande_127427|
00000020 5f 61 63 63 75 73 ef bf bd 5f 64 65 5f 72 ef bf |_accus..._de_r..|
00000030 bd 63 65 70 74 69 6f 6e 2e 70 64 66 0a |.ception.pdf.|
0000003d
Итак, я ищу ef bf bd
, который не похож на символ Юникода.К сожалению, поиск 0xef
не работает:
$ find . -type f | grep -P '\xef'
(nothing)
Любые подсказки?
Далее я планирую сделать что-то вроде:
$ find . -type f | grep <magic-here> | xargs -n1 -I{} sh -c 'mv "{}" $(echo "{}" | sed s/<magic-here>/é/) '