如何使用 Unix 命令在目录树中找到所有 UTF-16 编码的文本文件?

Joc*_*hen 7 character-encoding find

我想使用 Unix shell 命令在目录树中查找所有UTF-16编码文件(包含 UTF-16 字节顺序标记 ( BOM ))。有我可以使用的命令吗?

Arj*_*jan 9

尽管您要求查找 BOM,file但当此类 BOM 不存在时,使用甚至可能会给您结果。来自man file

如果文件与魔法文件中的任何条目都不匹配,则会检查它是否是文本文件。ASCII、ISO-8859-x、非 ISO 8 位扩展 ASCII 字符集(例如 Macintosh 和 IBM PC 系统上使用的字符集)、UTF-8 编码的 Unicode、UTF-16 编码的 Unicode 和 EBCDIC 字符集可以通过构成每个集合中可打印文本的不同范围和字节序列来区分。如果文件通过任何这些测试,则会报告其字符集。

因此,例如:

找 。-type f -exec 文件 --mime {} \; | grep "字符集=utf-16"