Estoy tratando de encontrar todos los archivos de texto que tienen la codificación iso-8859-1 y convertirlos a UTF-8. Mi intento hasta ahora es:xargs: sustitución de variables después de la redirección
find . -name '*.txt' | xargs grep 'iso-8859-1' | cut -d ':' -f1 |
xargs iconv -f ISO-8859-1 -t UTF-8 {} > {}.converted
El (obvio) problema es que la última sustitución de variables no funcionará, ya que {}
se produce después de que el cambio de dirección, y no pertenece a xargs
. Como solo obtengo un archivo llamado {}.converted
, no a.txt.converted
, b.txt.converted
etc. ¿Cómo puedo hacer que esto funcione?
Nota: Estoy haciendo esto en Cygwin, donde iconv no parece ser compatible con -o
.
Por favor, eche un vistazo a esta [pregunta relacionada] (http://stackoverflow.com/q/845863/183066). – jcollado
No sé qué respuesta aceptar. Las respuestas de e.dan y glenn son las más pragmáticas, pero Ole Tanges es la más estéticamente agradable. chorobas también es bastante agradable. Tienes que pensar sobre eso. –