免费程序在Windows中grep unicode文本文件?

时间:2009-07-28 21:35:32

标签: windows unicode grep

我有一个unicode文本文件的集合(从regedit导出),我想拉出所有带有特定文本的行。

我已经尝试了Grep for Windows和findstr,但两者似乎无法处理unicode编码。我的结果是空的,但是当我使用-v选项(显示不匹配的行)时,输出在每个字符之间显示NUL。

是否有任何免费选项可以在Windows中对Unicode文件执行简单的grep?

11 个答案:

答案 0 :(得分:10)

好吧,虽然findstr无法直接处理Unicode文件,但type确实可以findstr实际处理Unicode 输入而没有问题。

所以你需要做的只是

type myfile.txt | findstr /c:"I'm searching for this"
> type uc-test.txt
Unicode test. äöüß
Another line
Something else
> findstr "Something" uc-test.txt

> findstr /v "Something" uc-test.txt
 ■U n i c o d e   t e s t .   õ ÷ ³ ▀
 A n o t h e r   l i n e
 S o m e t h i n g   e l s e
> type uc-test.txt | findstr "Another"
Another line

答案 1 :(得分:8)

只是跑过grepWin,这完全符合我的要求。希望我早点发现它!

答案 2 :(得分:3)

绝对与cygwin一起使用(使用x服务器) - 最新支持utf8。在我的最后一场演出中,我正在用CJK角色做很多工作。使用cygwin的x服务器,您可以搜索任何字符并显示您具有固定宽度字体的任何字符。还可以查看od和xxd,这样可以使用十六进制字符轻松输入搜索内容,例如: $ echo'?' | grep $(echo'3f'| xxd -p -r)

答案 3 :(得分:3)

如果你有notepad ++,你可以使用“在文件中查找...”选项来搜索unicode文件。

答案 4 :(得分:2)

我使用http://unxutils.sourceforge.net/中的grep.exe和Windows命令行中的“chcp 65001”命令连接。

答案 5 :(得分:1)

我多年没有使用过windows,但我知道grep的两种替代方法,它们都是用解释语言编写的,因此可以在任何平台上运行:

两者都是命令行工具,但我假设你已经有了一个解决方案,如果你已经使用grep for windows。

看看他们,对不起,我不能帮助一个比这更好的人。

答案 6 :(得分:1)

您可以使用dnGREP。它是另一个支持unicode文件类型的开源grep工具。

答案 7 :(得分:0)

cygwin是你的选择吗?也许内置的grep表现得比你试过的好......

问候

答案 8 :(得分:0)

结帐BareGrep。我认为它会做你想要的。

答案 9 :(得分:0)

perl -CSD -ne'打印如果m {\ Qyour text here here \ E}'file.txt

答案 10 :(得分:0)

我相信Windows中最需要的免费程序是Powershell。例如:

Get-ChildItem -Recurse -path c:\ temp \ * .c | Select-String -pattern" myunicodestring"

或者,如果您只想搜索目录(不在子目录中):

Select-String -path" c:\ mydir \ * .log" -pattern"错误"