我想更改txt文件的编码。
{{1}}
我不想更改文件名,但是当我这样做时,我得到一个0字节的文件。
答案 0 :(得分:4)
您正在获取0个字节,因为您正在覆盖输入文件。
iconv -f WINDOWS-1250 -t UTF-8 filename.txt > output.txt &&
mv output.txt filename.txt
答案 1 :(得分:1)
正如@chepner和@Garret Hyde指出的那样,shell先解析I / O重定向,并在iconv有机会阅读之前覆盖filename.txt
。您必须分两步执行此操作:
iconv -f WINDOWS-1250 -t UTF-8 filename.txt > tmpfile.txt &&
mv tmpfile.txt filename.txt
&&
将确保仅当iconv命令成功时才会覆盖原始文件。