Próbuję znaleźć wszystkie pliki tekstowe, które mają kodowanie iso-8859-1 i przekonwertować je do UTF-8. Moja próba tak daleko jest:xargs: zmienne podstawienie po przekierowaniu
find . -name '*.txt' | xargs grep 'iso-8859-1' | cut -d ':' -f1 |
xargs iconv -f ISO-8859-1 -t UTF-8 {} > {}.converted
The (oczywiste) Problem polega na tym, że ostatni zmienna podstawienie nie będzie działać, ponieważ {}
występuje po przekierowaniu, a nie należą do xargs
. Ponieważ otrzymuję tylko jeden plik o nazwie {}.converted
, a nie a.txt.converted
, b.txt.converted
itd. Jak mogę to zrobić?
Uwaga: Robię to na Cygwin, gdzie iconv nie obsługuje obsługi -o
.
Proszę spojrzeć na to [powiązane pytanie] (http://stackoverflow.com/q/845863/183066). – jcollado
Nie wiem, którą odpowiedź przyjąć. Odpowiedzi e.dan i glenn są najbardziej pragmatyczne, ale Ole Tanges jest najbardziej estetyczny. chorobas jest również całkiem niezły. Muszę o tym pomyśleć. –