我有一堆要与grep一起使用的文本文件。它们全部来自外部源,并且经过UTF-16编码,并以字节顺序标记开头。
像grep这样的Unix工具对我不起作用。有什么解决方法?
只需使用iconv(1)将其更改为utf-8。
Mac OS X带有一个开箱即用的旧版本的BSD grep,它是有限的并且非常慢。但是,BSD和GNU grep都不处理UTF-16文件。其他grep工具,例如ag,rg和ugrep(新的通用grep工具),旨在支持Unicode和UTF文件。在这三个中,ugrep更接近GNU grep,因此没有太多的学习曲线可将其用作替代grep。
如果文件包含UTF字节顺序标记,则无需将它们转换为使用ag,rg或ugrep进行搜索。
要搜索没有字节顺序标记的文件,需要标记,例如-Q with ugrep:
-Q
ugrep -QUTF-16 "PATTERN" FILE