xargs: подстановка переменных после перенаправления

Я пытаюсь найти все текстовые файлы с кодировкой 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 .

5
задан jcollado 24 January 2012 в 12:14
поделиться