When Microsoft created the Windows Search feature that allows you to search through files in Windows Explorer, Microsoft also created a system that allows 3rd party developers to add support for additional file formats. This system is known by its technical name IFilter. If a company creates a proprietary file format, they can provide an IFilter that their customers can install. Then Windows Search can search through the text in files saved in that company’s proprietary format.
PowerGREP can use any IFilter that you have installed on your computer. You can tell PowerGREP for exactly which file types you want to use IFilter and/or for exactly which file types you don’t want to use IFilter. You can do so by clicking the (...) button next to “file formats to search inside” in the File Selector. By default, the configurations that tell PowerGREP to search through files in proprietary formats enable the IFilter for PowerPoint files and OpenOffice files other than OpenOffice Writer. PowerGREP does not yet have built-in decoders for these formats. Using the IFilter for these formats at least allows you to search through them.
PowerGREP does not have any control over the way the IFilters installed on your computer work. It can only choose to use them or not. Some IFilters definitely work better than others. Many just extract the text from the file, without any spacing or formatting. This is fine for Windows Search, which just uses the text to build a keyword index. But in PowerGREP, which can display match context and even entire files, an IFilter’s conversion can look like a monolithic blob of text that’s hard to read.
Since Windows Search can only search through files, Microsoft made the IFilter system read-only. If you configure PowerGREP to use IFilter for certain file types then PowerGREP cannot make changes to those files. But PowerGREP can use all its regular expressions and other capabilities on files decoded with IFilter.
So it’s best to only use the IFilter system for files that aren’t plain text and that PowerGREP doesn’t have a built-in decoder for.
There are four ways to see PowerGREP in action: