我有一个包含文件的目录,其中一些是 UTF-8,一些是 CP-1251。我想将 CP-1251 转换为 UTF-8,但不破坏 UTF-8 文件。
我尝试使用iconv -f cp1251 -t utf8 <...>
,它适用于 CP-1251,但如果文件已经是 UTF-8,它也会被转换并且变得难以理解。
答案1
您可以使用以下命令获取既不是 UTF-8 也不是 US-ASCII 的文件列表:
file -0 -i *.txt | awk -F '\0' '$2 !~ /charset=(us-ascii|utf-8)$/ {print $1}'