我如何将Mac OS X(和UNIX)命令行工具(如grep)与UTF-16文件一起使用?

问题描述 投票:4回答:2

我有一堆要与grep一起使用的文本文件。它们全部来自外部源,并且经过UTF-16编码,并以字节顺序标记开头。

像grep这样的Unix工具对我不起作用。有什么解决方法?

macos unix unicode grep utf-16
2个回答
7
投票

只需使用iconv(1)将其更改为utf-8。


0
投票

Mac OS X带有一个开箱即用的旧版本的BSD grep,它是有限的并且非常慢。但是,BSD和GNU grep都不处理UTF-16文件。其他grep工具,例如agrgugrep(新的通用grep工具),旨在支持Unicode和UTF文件。在这三个中,ugrep更接近GNU grep,因此没有太多的学习曲线可将其用作替代grep。

如果文件包含UTF字节顺序标记,则无需将它们转换为使用ag,rg或ugrep进行搜索。

要搜索没有字节顺序标记的文件,需要标记,例如-Q with ugrep:

ugrep -QUTF-16 "PATTERN" FILE
© www.soinside.com 2019 - 2024. All rights reserved.