我想这么做:
findstr /s /c:some-symbol *
或相当于grep的
grep -R some-symbol *
但我需要这个实用程序来自动检测UTF-16 (和朋友)中编码的文件,并对它们进行适当的搜索。我的文件甚至有字节排序标记FFEE在他们中,所以我甚至不寻找英雄自动检测。
有什么建议吗?
我指的是Windows和XP。
发布于 2012-09-04 15:58:25
解决办法是将您的UTF-16转换为ASCII或ANSI。
TYPE UTF-16.txt > ASCII.txt
然后你可以使用FINDSTR。
FINDSTR object ASCII.txt
发布于 2009-01-04 13:55:54
谢谢你的建议。我指的是Windows和XP。
我还发现了这个解决方法,使用了免费的strings.exe
。
C:\> strings -s -b dir_tree_to_search | grep regexp
Strings.exe
提取它找到的所有字符串(从二进制文件中提取,但对文本文件也很好),并在每个结果前面加上一个文件名和冒号,所以在regexp中要考虑到这一点(或者使用裁剪或管道中的另一个步骤)。-s
使它进行递归提取,而-b
只是取消横幅消息。
最终,我仍然对旗舰搜索工具Gnu、grep
和findstr
没有本地处理Unicode字符编码感到惊讶。
发布于 2011-07-21 20:31:56
在Windows上,您也可以使用find.exe。
find /i /n "YourSearchString" *.*
唯一的问题是这个打印文件名后跟着匹配。你可以通过管道过滤到findstr。
find /i /n "YourSearchString" *.* | findstr /i "YourSearchString"
https://stackoverflow.com/questions/408079
复制相似问题