Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何将Mac OS X(和UNIX)命令行工具(如grep)与UTF-16文件一起使用?_Macos_Unix_Unicode_Grep_Utf 16 - Fatal编程技术网

Macos 如何将Mac OS X(和UNIX)命令行工具(如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一起使用。它们都来自外部源,都是UTF-16编码的,以字节顺序标记开始


像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,我尝试了您的建议,但没有起作用