Я пытаюсь найти все текстовые файлы с кодировкой iso-8859-1 и преобразовать их в UTF-8.Моя попытка на данный момент такова:
find . -name '*.txt' | xargs grep 'iso-8859-1' | cut -d ':' -f1 |
xargs iconv -f ISO-8859-1 -t UTF-8 {} > {}.converted
(Очевидная) проблема в том, что подстановка последней переменной не будет работать, поскольку {}
происходит после перенаправления и не принадлежит xargs
.Так как я получаю только один файл с именем {}.converted
, а не a.txt.converted
, b.txt.converted
и т. Д. Как я могу сделать эту работу?
Примечание: я делаю это на Cygwin, где iconv не делаеткажется, поддерживает -o
.