Macos 如何将Mac OS X(和UNIX)命令行工具(如grep)与UTF-16文件一起使用?
我有一堆文本文件要和grep一起使用。它们都来自外部源,都是UTF-16编码的,以字节顺序标记开始Macos 如何将Mac OS X(和UNIX)命令行工具(如grep)与UTF-16文件一起使用?,macos,unix,unicode,grep,utf-16,Macos,Unix,Unicode,Grep,Utf 16,我有一堆文本文件要和grep一起使用。它们都来自外部源,都是UTF-16编码的,以字节顺序标记开始 像grep这样的Unix工具对我来说不起作用。有什么解决办法吗?只需使用iconv(1)将其更改为utf-8即可 MacOSX附带了一个旧版本的BSD grep开箱即用,它的速度非常慢。即便如此,BSD和GNU grep都不处理UTF-16文件。其他grep工具(如、和)旨在支持Unicode和UTF文件。这三者中,有一个更接近GNU grep,因此没有学习曲线将其用作grep的兼容替代品: ug
像grep这样的Unix工具对我来说不起作用。有什么解决办法吗?只需使用iconv(1)将其更改为utf-8即可 MacOSX附带了一个旧版本的BSD grep开箱即用,它的速度非常慢。即便如此,BSD和GNU grep都不处理UTF-16文件。其他grep工具(如、和)旨在支持Unicode和UTF文件。这三者中,有一个更接近GNU grep,因此没有学习曲线将其用作grep的兼容替代品:
ugrep "PATTERN" FILE ...
如果文件包含UTF字节顺序标记,则无需将其转换为使用ugrep、ag或rg进行搜索
要搜索没有字节顺序标记的文件,需要一个标志,例如使用ugrep进行编码:
ugrep --encoding=UTF-16 "PATTERN" FILE ...
出于好奇:如果您将
LANG
环境变量设置为类似en_GB.UTF-16
(或任何您的区域设置)的值,它会起作用吗?@bavariable,我尝试了您的建议,但没有起作用