Is there a Unicode-aware grep for Windows 32-bit?
7 Answers
For a command line tool, look at KeyboardMonkey answer (but I'm not sure about Unicode support).
For an (open source) GUI tool: dnGREP
- Shell integration (ability to search from Windows Explorer)
- Plain text, regular expression, and XPath search (including case-insensitive search)
- Phonetic search (using Bitap and Needleman-Wunch algorithms)
- File move/copy/delete actions
- Search inside archives / MS Word documents / PDF documents (via plug-ins)
- Undo functionality
- Optional integration with text editor (like Notepad++)
- Bookmarks (ability to save regular expression searches for the future)
- Pattern test form
- Search result highlighting
- Does not require installation (can be run from a USB drive)
For a more simple (only search) GUI tool: AstroGrep and for a more featured (and expensive) one: PowerGREP
-
According to gizmo's freeware, "Replace Text" ecobyte.com/replacetext is another interesting option Feb 9, 2010 at 18:13
-
Sorry for the necro, but THANK YOU!! I desperately this tool in Windows, and this dnGREP is a godsend!– pepoluanMar 26, 2017 at 16:01
Most versions of Windows include the command "findstr" which works much like grep. I do not know about its Unicode abilities, but to my knowledge there shouldn't be any problems with that.
Update: GnuWin32 is a more recently maintained port of these tools. (Thanks Quack)
Here is a list of the packages and to download grep individually.
Have a look at UnxUtils, which includes grep as well. I use these on my work PC, too.
-
3UnxUtils is old and unsupported -- last updated in 2003. try GnuWin32 for a more recent toolset: gnuwin32.sourceforge.net Feb 9, 2010 at 18:16
Yes, as fluxtendu mentions,
- PowerGREP will do all that. But it is proprietary and costs 149 Euros.
- dnGREP will work too, and has a similar feature set for free.
However,
- Cygwin can also install grep (and a whole lot more if you want.) It will do Unicode search with the
-U
switch. I would recommend Cygwin as the simplest solution if you're familiar with Unix grep. Just make sure to append your PATH and you can use it in the Windows shell too.
I asked this question a while back and finally discovered grepWin which is a GUI via the shell context menu. Works quite well.
The simplest way to do this there is a Windows utility called "strings" which does exactly what you're after:
Strings (Sysinternals)
Basically, it pulls all the Unicode characters out of files, so you can then pipe it to whatever Windows grepalike you use, be it findstr
(native) or like me, gnuwin32 grep for Windows (does what it says on the tin).
So you get something like:
strings *.odf | grep -i "texttosearch"
findstr
works too for a lot of things but grep is just all around better.
-
1How, exactly, does this answer the question? The
strings
program is used for finding text strings that are mixed in with non-text (“binary”) data; e.g., executable files. The question doesn’t say anything about having text strings embedded in binary data. … … … … … … … … What if I want to search a Unicode text file for characters likeπ
and≤
? Would I typestrings dissertation | findstr "π"
? Doesfindstr
handle Unicode? If it does, then why not just sayfindstr "π" dissertation
, which was suggested five years ago? If it doesn’t, then what have you gained? May 9, 2015 at 22:57 -
good point. I suppose I didn't properly grasp what the questioner was after– Some_GuyMay 9, 2015 at 23:14
See BareGrep (free version has a startup splash screen), which seems to be a quite complete graphical grep. The documentation mentions support for "Many file formats", so I would imagine that Unicode is included.
-
I'm pretty sure it does NOT support Unicode. I tried it and it doesn't work on UTF-16 files. Have emailed them to confirm.– O'RooneySep 2, 2013 at 0:55