【发布时间】:2012-02-17 15:43:51
【问题描述】:
我正在尝试查找所有编码为 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。因为我只得到一个名为{}.converted 的文件,而不是a.txt.converted、b.txt.converted 等。我怎样才能使它工作?
注意:我在 Cygwin 上执行此操作,其中 iconv 似乎不支持 -o。
【问题讨论】:
-
请看看这个related question。
-
我不知道该接受哪个答案。 e.dan 和 glenn 的回答是最务实的,但 Ole Tanges 是最美观的。 chorobas 也相当不错。必须考虑一下。