我试图找到所有具有编码iso-8859-1的文本文件并将它们转换为UTF-8。我尝试到目前为止是:xargs:重定向后的变量替换
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
。
请看看这个[相关问题](http://stackoverflow.com/q/845863/183066)。 – jcollado
我不知道接受哪个答案。 e.dan和glenn的答案是最实用的,但Ole Oleges是最美观的。 chorobas也相当不错。必须考虑它。 –