1

我有一堆文件是用 GB2312 编码的,现在我想将它们转换成 UTF-8,所以我应用下面的代码:

find . | xargs iconv -f GB2312 -t UTF-8

它成功转换它们,但输出打印在控制台中。

在这里,我希望它们保存在原始文件中,我该怎么做?

4

1 回答 1

0

您总是可以使用循环而不是xargs. 我不建议在一次性命令行调用中覆盖文件。先把它们移到一边怎么样:

for file in `find .`; do
    mv "$file" "file.old" && iconv -f GB2312 -t UTF-8 < "$file.old" > "$file"
done

请注意这一点。如果您的文件名包含空格,则此循环可能无法正常工作。

于 2013-06-24T02:35:21.873 回答