Character encoding 一个精通编码的grep替代品?
我很沮丧grep在我的UTF-16文档中找不到像“hello”这样的词Character encoding 一个精通编码的grep替代品?,character-encoding,grep,Character Encoding,Grep,我很沮丧grep在我的UTF-16文档中找不到像“hello”这样的词 有谁能推荐一个尝试猜测文件编码然后正确处理的grep版本吗?Perl有一种比grep更好的正则表达式语法(功能更强大),它支持UTF8和UTF16,但我不确定它在猜测编码方面有多好。。。不过,如果您告诉它使用哪种编码,它就可以毫无问题地读取这些文件,并在这些文件上运行正则表达式。您必须为此编写一个小型Perl程序(可以说是您自己的Perl微grep实现),但这并不难。Perl适用于所有主要操作系统。ack作为基于Perl的g
有谁能推荐一个尝试猜测文件编码然后正确处理的grep版本吗?Perl有一种比grep更好的正则表达式语法(功能更强大),它支持UTF8和UTF16,但我不确定它在猜测编码方面有多好。。。不过,如果您告诉它使用哪种编码,它就可以毫无问题地读取这些文件,并在这些文件上运行正则表达式。您必须为此编写一个小型Perl程序(可以说是您自己的Perl微grep实现),但这并不难。Perl适用于所有主要操作系统。ack作为基于Perl的grep替代品? 你肯定会想退房的 它支持Unicode编码,基本上是grep,但更好 尝试与grep匹配的Unicode区域设置 如果您使用的是Linux、Unix等,则可能需要将LANG envariable更改为与文档匹配的编码 首先检查您的区域设置。以下是我在MacBook Pro上默认设置的内容: 比如,在bash下:
$ LANG="foo" grep 'gotta be found now' file.name
一些更持久的东西(注意这个):
我很沮丧,因为grep在我的字典里找不到像“hello”这样的词
UTF-16文件
有人能推荐一个试图猜测文件的grep版本吗
编码,然后正确处理它
iconv
filter实用程序与grep
结合使用,将UTF-16文件转换为UTF-8,但必须明确指定输入和输出编码,例如:
iconv-f utf-16-t utf8`您的操作系统是什么?Perldoc网站上甚至有一些用Perl编写的非常基本的grep替换示例。我相信它们通常大约有5或6行,不过如果您想添加任何复杂的命令行解析,它们会更多。获得ack比我知道的更容易:curl>~/bin/ack&&chmod 0755$以上链接不再对任何人有效?无法让它工作。(1) 重新确认:确认在我的Cygwin安装中识别UTF16LE。ACK文档中也没有提到Unicode或UTF16。(2) Re grep:UTF16LE在哪个地区?(3) UbuntuBug:Guy基本上说:对不起,Unix就是这样。
$ LANG="foo" grep 'gotta be found now' file.name
$ export LANG="foo"
$ grep 'bar' mitz.vah