Я пытаюсь найти все текстовые файлы с кодировкой 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
. Я получаю только один файл с именем {}. Convert
, а не a.txt.converted
, b.txt.converted
и т. Д. Как я могу это сделать работают?
Примечание: я делаю это на Cygwin, где iconv, похоже, не поддерживает -o
.