PowerGREP Release Notes

Don’t let the long lists of issues on this page make you think our products have a lot of problems. Quite to the contrary. All the bugs listed below are bugs that we have fixed. Many of these are corner cases reported by only one or perhaps a handful of our customers. Other software companies often don’t spend any effort addressing such issues, much less list them publicly. We take pride in producing high quality software, and often release free updates to ensure you won’t have any problems with our software.

Your purchase also comes with one year of free major upgrades. So don’t worry if there might be a new major upgrade around the corner just because it’s been a while since the last major upgrade. If there is one around the corner, you’ll get it free, without having to ask. (But you can keep the old version if you prefer.)

If you ever hit a snag with PowerGREP, check here whether you have the latest version. If you do, simply report the issue on the forum and we’ll help you out as soon as we can.

PowerGREP 5.3.6 – 21 May 2024

Files in proprietary file formats need to be converted to plain text before PowerGREP can search through them.  PowerGREP has built-in converters for many such file formats.  You can enable or disable each converter separately by editing the file format configuration on the File Selector panel.

A significant bug was fixed in PowerGREP’s converter for WordPerfect Documents.  Previously, this converter could get stuck in an infinite loop on certain WPD files.  This would cause the action to stall if the number of WPD files included in the action that triggered this bug exceeded the minimum number of execution threads configured in the preferences.  You would then have to abort the action by clicking the Abort button on the Action or Results toolbar.  To avoid the issue in the first place you had to select “always exclude files of this type” for the WordPerfect file format in the file format configuration.

Now PowerGREP correctly converts these WPD files.  If you previously encountered this error then you may now get an error saying that another PowerGREP instance is stuck on those files.  To avoid this, go into the Cache section in the Preferences and clear the cache to make PowerGREP forget it previously ran into trouble with those files.

After previewing or executing a search-and-replace, you can make and revert replacements on the Results panel.  Changes you make on the Results panel are not saved immediately.  This improves performance by not having to rewrite the file for each and every replacement you make or revert.  Instead, each file is only saved when you make or revert a replacement in another file.  The last file is saved when you clear the Results panel, run a new action, or close PowerGREP.  Starting with version 5.3.6, PowerGREP will also save the last file you made or reverted replacements in when you tell PowerGREP to open a file in EditPad or in any other external editor or application (even if the file you’re opening is a different one).  This ensures that the other application will see all your changes.

If you make or revert replacements on the Results panel in the same file that you have already open on the Editor panel then the changes are actually made to the contents of the Editor panel that are modified.  Then it’s up to you to save the file using the Save button on the Editor panel or via the Editor panel’s prompt to save unsaved changes before closing the file.

If you make or revert replacements on the Results panel and then open the file on the Editor panel then the Results panel will first save the file and then the Editor panel will load the file.  Previously this caused the Editor panel to prompt that the file was modified on disk and ask you to reload it.  This prompt was false.  The file was modified on disk by the Results panel before the Editor panel loaded the file.  This release eliminates the false prompt.

The Results|Automatic Update menu item toggles whether PowerGREP updates the contents of the Results panel on a regular basis while an action is being executed.  You can turn this off for better performance or to avoid matches scrolling by faster than you can check them.  When the menu item is off you can click the Update button on the Results toolbar while an action is running to show the latest progress.

Previously the Results|Automatic Update menu item advertised Shift+F5 as its keyboard shortcut.  But this shortcut actually did something else.  When a multi-line editor control has keyboard focus, Shift+F5 cycles through the most recent editing positions.  So if you make a change somewhere in a file on the Editor panel and then move the cursor somewhere else, then you can press Shift+F5 to go back to where you made the change.  This is the same what the Go|Back in Editing Positions command does in EditPad, which also has Shift+F5 as its keyboard shortcut.

Now the Results|Automatic Update menu item has Ctrl+F5 as its keyboard shortcut.  This combination was previously unused in PowerGREP.  It now correctly toggles Automatic Update.  The Shift+F5 key continues to work as it did before.

PowerGREP 5.3.5 – 18 January 2024

This release fixes one bug that was introduced in PowerGREP 5.3.4.  It caused sequences to be aborted with an access violation error during or after the first step in the sequence.

PowerGREP 5.3.4 – 9 January 2024

This release brings a bunch of minor fixes.

On the Action panel, several action types have a “target file creation” option that you can use to write search matches to file as they are found during the action.  When you use this option you get an additional “between collected text” option that lets you specify if any text should be written between the search matches.  The options that put different text between matches found in the same file and matches found in different files did not work correctly with “list files“, “file or folder name search“, and “file or folder name collect” actions.  These actions can only find one match per file.  To solve this, PowerGREP now shows a reduced set of “between collected text” options for these action types.

When using the “target file creation” option you can tick the “collect headers and footers” to write extra text and the start and end of the target files.  You can additionally tick “expand placeholders” to enable certain match placeholders and path placeholders in the headers and footers.  The placeholders were correctly highlighted as such on the Action panel.  But they were not always substituted correctly in the target files.  For “list files“, “file or folder name search“, and “file or folder name collect” actions the placeholders remained as literal text.  For “search” and “collect data” actions, path placeholders such as %FILE% worked correctly but match placeholders such as %ACTIONDATE% were replaced with nothing.  Now, all placeholders work correctly for all action types.

The “file formats to convert to plain text” configuration on the File Selector panel determines whether and how PowerGREP converts files in proprietary formats to plain text when it needs to search through them.  This configuration equally affects how the Editor panel opens files.  This lets you open a file on the Editor panel to see exactly which text PowerGREP searches through.  Some configurations treat certain file formats such as Microsoft Office and OpenDocument Format files as compound documents.  Technically, these files are ZIP files containing XML and other files.  The “compound document” option tells PowerGREP to search through the raw contents of the XML and other files inside the document file, while still treating the file as a single file rather than as an archive.  In this mode, the Editor panel cannot open Office files directly.  It can only show the contents of one of the XML or other files inside the document file.  If you try to open an Office file directly while its being treated as a compound document the Editor panel now clearly explains that you either need to use the File Selector panel to select a file within the compound document or change the file format configuration to have PowerGREP convert Office files to plain text.

On the File Selector panel, you can mark the Editor node with the green tick to have an action process the contents of the Editor panel directly, even if those contents weren’t saved to file.  When you do so, PowerGREP now highlights the search matches that it found on the Editor panel.

The Import button on the File Selector panel lets you import a file listing.  You can select one or more text files in which PowerGREP should look for paths to files or folders to be included in or excluded from the next action.  The option “custom regex to split file” now works correctly.  The “paths relative to this folder” option now works correctly when the paths need to be relative to the root folder of a drive.

See also: PowerGREP 5.3.4 version history

PowerGREP 5.3.3 – 18 May 2023

This release brings a bunch of minor fixes and improvements.

On the Action panel, if you set “action type” to “list files” or to “file or folder name search” then the “target file creation” setting has two options to convert (copies of) matched files to text.  When searching through files in proprietary formats such as PDF or Office files that PowerGREP converts to plain text prior to searching you can use these target types to write that plain text conversion to file.  This release fixes a bug that caused the “convert matched files to text” option to overwrite the original file without adding a .txt extension but to note the file with the .txt extension in the Undo History.  As a result, if you undid the action, the original file would be restored from the backup with the .txt extension.  For example after converting original.pdf and undoing the action you’d have original.pdf still as the plain text conversion and original.pdf.txt as the original PDF file.  You’d have to rename all your PDF files to remove the .txt extension to properly undo the action.  This issue has been fixed.  Now, after executing the action the original PDF will remain as original.pdf and the plain text conversion will be saved as original.pdf.txt.  Undoing the action will remove original.pdf.txt or restore it from its backup if it existed before the action.  The original PDF remains as original.pdf.  The “convert copies of matched files” to text option was not affected by this bug.  It correctly saved the plain text conversion with an additional .txt extension if your target file location settings resulted in a path with an extension such as .pdf that would make PowerGREP interpret the file as being in a proprietary format.  Exactly which extensions that applies to depends on the “file formats to convert to plain text” setting on the File Selector panel.

When searching through plain text files, the same two options to convert (copies of) matched files to text can be used to change the encoding and/or line break style of the matched files.  It also lets you add or remove a the byte order marker to/from Unicode text files.  The settings in the text encoding configuration on the File Selector panel determine whether PowerGREP writes or does not write the BOM when creating or overwriting a file.  If you turn off the option to preserve the presence or absence of the BOM then you can force PowerGREP to always or never write a BOM.  PowerGREP takes this into account when converting files to plain text and will rewrite the file with or without the BOM even when you’re not otherwise changing the encoding or line break style.  New in version 5.3.3 is that if the file already has the desired encoding, line break style, and BOM (or lack thereof or the encoding is not Unicode) then PowerGREP no longer overwrites a plain text file with the exact same contents when the target type is to convert matched files to plain text.  This speeds up actions and avoids changes to last modification dates when only some of the files in your action actually need to be modified to meet your requirements for encoding, line break style, or BOM.

On the File Selector panel, you can type or paste a path into the Path box to navigate to a path.  This happens automatically as you enter the path.  There’s no need to press Enter.  Pressing Enter no longer produces a “ding” sound.  When entering a UNC path in the form of \\server\share\ PowerGREP waits until you’ve entered the 4th backslash before it tries to connect to the network share.  This avoids network delays in finding network shares that don’t exist (because you hadn’t completely entered the share’s name yet).  Now PowerGREP allows dollar signs in UNC server names so that paths like \\wsl$\Ubuntu\ are recognized as valid UNC paths.

By default, PowerGREP acts as if files that look like backup copies or working copies and folders that look like they hold version control information don’t exist at all.  They don’t show up on the File Selector panel and are never included in any actions.  You can control which files and/or folders are hidden from PowerGREP via the “hide files and folders” setting on the File Selector panel.  The predefined configurations with “versioning” in their name previously hid .svn folders used by Subversion.  These predefined configurations have been updated to also hide the git, .hg, and .bzr folders used by the Git, Mercurial, and Bazaar version control systems.

This change only affects the predefined configurations when you first install PowerGREP 5.  If you’re upgrading from a previous 5.x.x to 5.3.3 and you want to have the new predefined configurations, click the (...) button next to “hide files and folders“.  Delete all the configurations and click OK.  Instead of leaving you with no configurations, PowerGREP will now restore the default configurations for hiding files and folders.  Alternatively, if you have custom configurations that you want to keep, you can edit the configurations and replace ^\.svn$ with ^\.(svn|git|hg|bzr)$ in the “hide folders” file masks.

Note that if you have previously saved a file selection or an action (which includes a file selection) then that saved file selection will continue to use the exact same “hide files and folders” configuration that it was saved with, even if there is a new predefined configuration with different settings.  The file selection saves and loads all the settings in the configuration, not just its name.  If there is a configuration with the same name but different settings when you load a file selection then the loaded configuration will be added temporarily to the “hide files and folders” drop-down list with a (2) next to its name.  This mechanism ensures that previously saved file selections and actions continue to work exactly as they worked before.  To update a file selection to a new configuration, simply select the new configuration from the “hide files and folders” drop-down list and save the file selection.

PowerGREP cannot search through password-protected files.  If a PDF file is protected with a password then PowerGREP now adds an error to the Results panel saying the PDF is password-protected instead of an error saying “PDF conversion error“.  PowerGREP already did this for other file formats such as Office files.

See also: PowerGREP 5.3.3 version history

PowerGREP 5.3.2 – 8 July 2022

Some files such as the DOCX and XLSX files saved by Microsoft Office are technically ZIP archives that contain XML and other files.  PowerGREP can treat such files as compound documents if you select such a configuration for “file formats to convert to plain text” on the File Selector panel.  This lets you search through the XML files inside the document, while still treating the DOCX or XLSX file as a single document file that should be moved or copied as a whole when you tell PowerGREP to copy or move matching files.  In previous versions this did not work correctly if you had a search-and-replace action make its replacements in copies of the files.  The target file would be missing any internal files in which PowerGREP did not have to make replacements.  Now PowerGREP ensures the entire compound document is copied before making replacements.

PowerGREP has supported file paths longer than 260 characters since version 5.0.0.  It does this by adding the \\?\ prefix before passing long paths to the Windows API.  This release fixes a bug that caused this prefix to show up in the user interface when you clicked the (...) button in various places to browse for a folder.  PowerGREP’s manifest now includes longPathAware to indicate PowerGREP’s support for long paths.  PowerGREP now checks the LongPathsEnabled registry value on Windows 10 and 11.  If this value is set then PowerGREP knows that long paths no longer need a prefix at all.  This makes handling long paths a tiny bit more efficient.

A couple of crash bugs have been fixed.  Previous releases could (occasionally) crash when clicking the Abort button to abort an action and when executing an action after activating the option File Selector|Search Only Through Files with Results.  A bunch of other minor bugs and corner case bugs were also fixed.  The version history has the complete list.

PowerGREP 5.3.1 – 21 September 2021

PowerGREP now refuses to run actions that try to use a regular expression that consists entirely of comments or free whitespace.  The Assistant will pop up a message explaining this.

The Next File and Previous File buttons on the Editor panel now work correctly when the Results panel is showing the results of a “list files“, “file or folder name search“, or “merge files” action.  They step through the files listed on the Results panel.

PowerGREP can search through email messages in MIME format stored in separate *.eml files if you set “file formats to convert to plain text” on the File Selector panel to “proprietary formats” or “all formats“.  It can search through email messages in MBOX files (mailbox files in MIME format) if you set “archive formats to search inside” on the File Selector panel to a configuration with “mailboxes” in its name.  Previously PowerGREP would only handle MIME messages with headers up to 16 KB in size.  This limit has been increased to 64 KB.  The limit mainly exists for performance reasons.  It avoids spending too much time trying to decode something that is not actually an email.  A typical email header is about 4 KB in size.  But some security software that filters emails can expand email headers significantly.  PowerGREP now handles such emails correctly.

In the Action Preferences you can specify a minimum number of execution threads.  It controls the number of files that PowerGREP processes at the same time as one thread processes one file at a time.  This option is now ignored when executing actions that do not look inside the contents of files at all.  For such actions the speed of the drive that the files are stored on is usually the bottleneck.  Processing multiple files on the same drive at the same time then rarely speeds things up.  If the drive is a mechanical hard disk or a slow USB stick it can actually slow things down quite a bit, particularly if the action makes copies of the files that it finds.  So PowerGREP no longer does this.

The options to use a separate thread for each drive letter or network share are still used for all actions.  If you turn them on then PowerGREP searches though all the drives that store files included in your action at the same time.  Generally this can greatly speed up your actions.  The only situations to disable these options could be if you have multiple drive letters mapped to (different partitions on) the same mechanical hard drive or if you are on a busy network and you don’t want PowerGREP to use too much bandwidth.

See also: PowerGREP 5.3.1 version history

PowerGREP 5.3.0 – 7 April 2021

At the top of the File Selector panel there is a button labeled Import.  Clicking it opens the Import File Listings dialog.  It lets you load lists of files and/or folders from arbitrary text flies and mark those files to be included in or excluded from the next action.  Several improvements were made to this dialog.  It now keeps a history of regular expressions that you have used to extract paths from the text files so you can quickly reuse them.  When you select a file in the list “files with file listings” or add a file to it, the list with “file paths found in the selected file” shows you a preview of the paths that would be imported with your current settings.  Building this preview could take a long time in previous versions of PowerGREP if a great number of paths were found in the file.  Now the preview is just as quick as the actual import.  The preview is now also limited to the first 10,000 paths in the file.  If the file contains more paths then there will be a note at the bottom of the list explaining that the preview was cut off after 10,000 paths.  These two changes let you preview your settings almost instantly even when importing very large file listings.  The actual import will still import all the paths.  If you use the Import File Listings dialog again with a new file selection during the same PowerGREP session then the preview is now cleared instead of showing a leftover preview from the last import.

When searching through PDF files, PowerGREP needs to first convert them to plain text.  PowerGREP places a time limit on this conversion to ensure that your action doesn’t stall when the PDF converter gets stuck on a particular PDF file.  If the time limit is exceeded then PowerGREP aborts the conversion and adds the error “converter process timed out” to the Results panel.  The exact number of seconds that PowerGREP will wait depends on the size of the PDF file.  Previously, the conversion PDF files that contained many hundreds of pages of text but few or no images could time out prematurely on slower computers.  Such PDF files are relatively small but take relatively long to have all their text converted.  PowerGREP now gives the PDF converter significantly more time to do its work.  If you have been getting these errors previously then you will need to erase the conversion cache in the Cache section in the Preferences.  When a conversion times out PowerGREP remembers this.  Next time you try to search through the same file you’ll get an error saying that a “previous attempt to convert this file failed“.  PowerGREP won’t waste time trying to convert the same file again until either the file changes on disk or you erase the cache.

If PowerGREP does not have a built-in converter for a particular file format but Windows Search does find such files based on their contents on your computer then your computer must have an IFilter installed for that file format.  The IFilter enables Windows Search to extract keywords or text from the file.  PowerGREP can do the same if you enable the option “use filter, if available for this file format, to convert files to plain text“.  You can access it by clicking the (...) button next to “file formats to convert to plain text” on the File Selector panel.  Previously, PowerGREP could only use an IFilter if it implemented IPersistFile to load a file directly from disk.  If an IFilter only implements IPersistStream then previous versions of PowerGREP acted as if the IFilter was not available at all.  Now PowerGREP will load the file from disk and feed it into the IFilter through IPersistStream.  There’s no easy way for you to check which interface an IFilter supports.  But if you have an IFilter installed on your computer that seemed to be ignored by previous versions of PowerGREP then it will most likely work now.

If you set “archive formats to search inside” on the File Selector panel to “attachments & proprietary formats” then PowerGREP can search through email messages and their attachments stored in Outlook MSG files.  If an email message has another email message as an attachment then PowerGREP now correctly searches through the attached email message and even through the attached email message’s own attachments.

See also: PowerGREP 5.3.0 version history

PowerGREP 5.2.3 – 30 September 2020

On the File Selector panel, you can use the “archive formats to search inside” setting to choose whether PowerGREP should search inside archives or compressed files.  Two of the predefined archive format configurations are “zip archives only” and “zip and individually compressed” which search inside ZIP archives.  The latter configuration also searches through individually compressed files using the GZip, BZip2, LZMA, and XZ formats.  Previously, both these configurations also searched through Java archives (JAR and EAR files).  Java archives are technically ZIP archives.  But they normally contain Java applications rather than document files.  So now the “zip archives only” and “zip and individually compressed” archive format configurations no longer search through Java archives.  The “all archives” configuration continues to search through Java archives.

This change does not automatically affect existing PowerGREP 5 installations.  The update will take over your existing settings, including your archive configurations, whether you customized them or not.  If you want to apply this change, click the (...) button next to “archive formats to search inside” on the File Selector panel.  In the dialog that appears, select “zip archives only” in the left hand list and then “ZIP archives” in the right hand list.  Enter *.zip as the file masks.  Select “ZIP and individually compressed” in the left hand list and change the file mask again.  OK the dialog.

Changing an archive configuration, whether manually or by a clean install of PowerGREP 5, does not alter previously saved file selections.  When you save a file selection, it includes all the details of the configurations you selected in the “conversion and extraction” section on the File Selector panel.  When you open the file selection again, it loads all those settings.  If have changed the settings of the configuration since the file selection was changed, PowerGREP adds duplicate configuration numbered (2) with the settings that were saved in the file selection.  If you want the file selection to use your new configuration, you need to select the configuration without the (2) from the drop-down list.  This mechanism ensures that you can save a file selection and run it again later in exactly the same way, independent of any preferences that may have changed.  This is particularly useful when people in a team that may have different preferences need to be able to run each other’s PowerGREP actions with the same settings.

File formats like DOCX and XLSX are document formats.  But technically they are ZIP archives that contain XML and other files that make up the content of the documents.  PowerGREP lets you search and replace through these XML and other files if you select the “writable compound documents” file format configuration on the File Selector panel.  This can be handy when you need to modify certain metadata such as hyperlinks and file references in these files.  It is possible for such files to be embedded within each other.  A DOCX file, for example, can contain embedded DOCX files.  Previously, PowerGREP did not correctly handle making replacements inside the embedded files, corrupting the entire document.  This has been fixed.

PowerGREP can extract metadata such as song titles and artist names from audio files commonly used to distribute music online.  If you select the “writable proprietary formats” file format configuration on the File Selector panel PowerGREP even lets you change the metadata in these audio files using a search-and-replace or search-and-delete action.  In some situations, PowerGREP would fail to write the modified metadata back to the audio file, showing an Access Violation error for the file on the Results panel.  This left the file intact, but unchanged.  This has been fixed.

The Library panel has two horizontal splitter bars that let you resize the list of items and the description and summary of the selected item.  The Results panel has a horizontal splitter bar when it shows error messages or match details in its bottom half.  Reducing the height of PowerGREP’s window now automatically moves these splitter bars if needed to keep all the parts of the Library and Results panels visible.

See also: PowerGREP 5.2.3 version history

PowerGREP 5.2.2 – 24 June 2020

This release fixes a bunch of bugs.

On the Action panel, working with lists and delimited lists of binary data no longer triggers access violation errors.  The option to expand context to whole lines now works correctly.

In regular expressions, POSIX classes using the \p notation such as \p{Word} now always match Unicode characters.  In previous 5.x.x releases, they matched only ASCII character when used in a character class together with other tokens.  You can use the POSIX notation [[:word:]] in PowerGREP 5.0.0 and later if you want to use a POSIX class matching only ASCII characters.  Placeholders such as %GROUP1% that reference a non-existent capturing group now always trigger an error saying the backreference is invalid.  Previously they would trigger an access violation if the regex did not contain any backreferences other than those using the placeholder syntax.

On the File Selector panel, setting “file formats to convert to plain text” to one of the configurations labeled “attachments” makes PowerGREP treat email messages stored in MIME format (EML files) as folders that contain the email message and its attachments as separate files.  Attachments with spaces in their file names no longer have their file names truncated at the first space.

On the Results panel, setting “group search matches” to “per unique match” now works with results produced by actions using the “file or folder name collect” action type.

See also: PowerGREP 5.2.2 version history

PowerGREP 5.2.1 – 4 February 2020

PowerGREP 5.0.0 introduced the ability to search and replace through files in proprietary formats.  If you set “file formats to convert to plain text” on the File Selector panel to “writable proprietary formats” then you can search-and-replace through a plain text conversion of file formats such as Microsoft Word (DOCX) and OpenDocument Text (ODT) and of metadata in audio and image files.  Any replacements made in the plain text conversion are written back to the original file format.  PowerGREP 5.2.1 brings a bunch of minor fixes in this area.  Combined, these fixes make searching and replacing through files in proprietary formats significantly more reliable.

PowerGREP is now also capable of making replacements in the (basic) headers and body text of MIME email messages stored in EML files when you set “file formats to convert to plain text” to “writable proprietary formats“.  If you also set “archive formats to search inside” to one of the “mailboxes” configurations then this also works with MIME email messages in MBOX files.  If you set “file formats to convert to plain text” to “attachments & writable proprietary formats” then PowerGREP can make replacements in the body text and attachments of MIME email messages, but not in their headers.

When you search-and-replace through multiple folders, those folders may contain multiple files with the same name.  If you set “target file creation” to copy files and “target file destination type” to “single folder” then only one target file can be created for each set of files with the same name.  PowerGREP handles this by skipping the second and following files with the same name.  It adds an error message for each skipped file to the bottom half of the Results panel.  This now works correctly when making replacements in files in proprietary formats.  Previously, it would cause seemingly random errors for all remaining files in the action.

The Insert Match Placeholder dialog that you can access via the right-click menu of the Search box on the Action panel now includes the %FILEN%, %FILENZ%, and %FILENA% placeholders.  %FILEN% gives each file that the action searches through a unique number, starting with 1.  Since PowerGREP can process files in parallel, there is no guarantee that the same file will get the same number if you execute the same action more than once.  In previous 5.x.x releases, %FILENZ% and %FILENA% also counted files starting from one.  This has been fixed.  Now %FILENZ% counts files starting with 0.  %FILENA% gives each file a unique letter from A to Z, then continuing with AA, AB, and so on, like column letters in Excel.

If you entered invalid file masks on the File Selector panel, previous 5.x.x releases only showed an error message if you included an entire drive in the action.  In all other cases the action was executed and the invalid file masks were ignored.  Now PowerGREP shows an error message on the Assistant panel and refuses to continue when you try to preview or execute an action with invalid file masks regardless of whether you’ve marked drives, folders, or files in the folders and files tree.

See also: PowerGREP 5.2.1 version history

PowerGREP 5.2.0 – 6 September 2019

This release brings a bunch of bug fixes and minor improvements.  These release notes describe the most important once.

PowerGREP allows you to use regular expressions to search through binary files.  To match specific bytes or to replace with specific bytes, you can use the \xFF syntax in the regular expression or the replacement string to specify a byte.  In previous 5.x.x releases these escapes were incorrectly substituted with a question mark instead of the actual byte in binary files for byte values that are unassigned in the computer’s default code page.

The “file or folder name collect” action type lets you collect text based on the name or full paths of files and/or folders.  You can now set “target file creation” to “save one file for each searched file” when using this action type if you want a new text file to be created for each matching file or folder name.

The “count matches” action type now shows the actual search term when counting matches of a single regular expression or a single binary search term. Previously the search term was indicated as “1“.  Turning on file sectioning and then “invert search results” and then changing the action type to “count matches” without turning off file sectioning caused the action to fail with an error.  The “count matches” action type does not support “invert search results” and hides the checkbox.  The state of the (hidden) checkbox is now ignored when executing the “count matches” action.

The “collect data” action type allows you to count matches using the %MATCHCOUNT% placeholder.  In previous 5.x.x releases, padding this placeholder (e.g. %MATCHCOUNT:6Z%) caused it to be off by one.  The unpadded placeholder was correct.

Results|Save now correctly saves the results of “count matches” actions into .pgr files.  Results of “collect data” actions with “group results for all files” turned on are now also saved correctly into .pgr files.  Results|Open will not open .pgr files with these two types of results that were incorrectly saved by previous versions of PowerGREP.

The File Selector|Clear Folder and its Files and Subfolders menu item clears all marks that include or exclude files or folders on the selected folder and all files and folders it contains.  If you used this command on an entire drive and then marked files or folders for inclusion on the drive while you had “same masks for all folders” turned on then after that PowerGREP failed to apply the file masks to the included folders on that drive until you edited the file masks.  This bug has been fixed.  Clear Folder and its Files and Subfolders does not clear any file masks when “same masks for all folders” is turned on.

Action descriptions on the Library panel have some extra blank lines to make them easier to read.  The “filter files” settings are now correctly included in the description.

At the bottom of the Results and Editor panels there is a toolbar for quick searches in the search results or the file you’re editing.  The drop-down list for entering the search term now scales on high DPI systems.  You can click the Regex button to search for a regular expression.  Clicking the Find Next button when using a regular expression now correctly finds adjacent matches.  The Find Next and Find Previous buttons now have icons that point downward and upward instead of right and left to make it more obvious that they move within the current file.  Commands that go to the next or previous file keep their icons with arrows pointing right and left.

Running the installer with the /silent parameter from a command prompt without admin privileges now installs PowerGREP for the current user without an elevation prompt instead of doing nothing.  If PowerGREP was previously installed for all users or you also pass the /userall parameter then the installer triggers an elevation prompt to be able to install PowerGREP for all users.  To avoid the elevation prompt, start your silent installation from a command prompt that already has admin privileges.

When installing PowerGREP normally, simply double-click SetupPowerGREP.exe in Windows Explorer.  Do not run it with administrator privileges.  The installer will request those if and when it needs them.

See also: PowerGREP 5.2.0 version history

PowerGREP 5.1.7 – 16 November 2018

Since PowerGREP 5.0.0, the File Selector panel lets you mark the contents of the Editor panel as a file to be searched through.  The Action panel lets you use the Editor panel as a target file for any action type that can write matches to a single file.  If you do both for a single action, PowerGREP 5.1.7 no longer asks if you want to save the contents of the Editor panel.  If multiple steps use the Editor panel for output, PowerGREP no longer asks if you want to save the contents of the Editor panel for the second and following steps that use it.  This way you can more easily use the Editor panel as a scratch file.

A bunch of bugs were fixed.  The most important one is that archives were not handled correctly when executing an action that includes archives with the /silent parameter.  Double-clicking a replacement on the Results panel that was made in a file in a proprietary file format now opens that file’s plain text conversion where you can actually see the replacement and its context, rather than the raw binary contents of the file.  A couple of bugs that caused access violations with particular combinations of settings on the Action panel were also fix.  Less serious but quite annoying was that loading a file selection that does not filter files based on their modification dates set the default dates to 30 December 1899.  Now the default date is reset to the present date.

See also: PowerGREP 5.1.7 version history

PowerGREP 5.1.6 – 27 June 2018

This release fixes a serious bug in PowerGREP’s decoder for Outlook MSG files.  If you use PowerGREP to search through MSG files, you should upgrade to version 5.1.6 immediately.  The default “proprietary formats” configuration on the File Selector panel enables the converter for Outlook MSG files.

Outlook MSG files store the body text of your email in Rich Text Format (RTF).  This RTF can be stored uncompressed or compressed.  We’ve discovered that some MSG files store uncompressed RTF under the tag for compressed RTF.  Previous versions of PowerGREP did not detect this.  PowerGREP could corrupts its memory when trying to decompress the uncompressed RTF.  This could lead to PowerGREP hanging or crashing.  Now PowerGREP detects whether the RTF is compressed or not and correctly handles it either way.  Extra safeguards have been put into place as well so to allow PowerGREP to handle damaged MSG files that contain invalid data under the compressed RTF tag.

On the Results panel, when matches are grouped per file, the left hand margin shows plus and minus signs in a square box.  These allow you to fold and unfold the matches for each file.  Depending on the Text Folding settings in the Editor section in the Preferences, the Editor panel may also show folding icons for certain files.  Now these icons are scaled better on high DPI systems, making them easier to distinguish and click on.

Opening a file on the Editor panel that has search matches listed on the Results panel highlights those matches on the Editor panel.  Starting a new action while the Editor panel still had such a file open could cause access violation errors.  This has been fixed.  Now the Editor panel removes the match highlighting of any file it has open when you start a new action.

PowerGREP 5.1.5 – 16 May 2018

PowerGREP’s converter for XLSX files now efficiently skips over images inside XLSX files.  This significantly increases its performance and reduces its memory usage on large XLSX files with many images.  This does not change the results of the plain text conversion as that did not include any image references anyway.

PowerGREP has supported paths longer than 260 characters since version 5.0.0.  Many applications don’t support such long paths because of limitations in Windows itself.  But we missed a spot.  Entering or pasting a path longer than 260 characters into the Path box on the File Selector panel could cause an access violation error or a crash.  This has been fixed.  Remember that the Path box is only an aid to navigating the folders and files tree.  Actual search paths are based on what you mark in the folders and files tree.

You can make PowerGREP insert something at the start of files by searching for the regular expression \A (which matches the very start of the file) and replacing with what you want to insert.  Similarly, you can insert something a the start of each line using the regular expression ^ (which matches the start of each line).  Due to a bug, this did not work in previous 5.x.x releases.  When a regular expression found a zero-length match at the very start of the file, like these two regexes do, the replacement for that match was not written to the target file.  Zero-length matches at other places in the file were correctly replaced.  Now, PowerGREP correctly replaces all zero-length matches, including at the very start of the file.

Double-clicking the path of a backup file in the results now correctly opens the backup file rather than the target file it is a backup of.  If the backup is a copy of the source file in a search-and-replace, the editor highlights the replaced matches in red.  You can choose whether backup files are indicated in the results.  You can find that option in the Results section in the Preferences.

Double-clicking a file header in the results opens the file that was searched through.  If the action was a search-and-replace that made replacements in a copy of the file then the Editor panel highlights the replaced matches in red.  But if the action made the replacements in the same file, then the Editor needs to highlight the replacements that were made in green.  This now works correctly.

PowerGREP’s installer has been improved to better deal with Controlled Folder Access.  This is the ransomware protection feature added to Windows Defender in the Windows 10 Fall Creators Update.  It is unchanged in the April 2018 Update.  PowerGREP’s installation will now go a bit more smoothly when Controlled Folder Access is enabled.  PowerGREP’s installer now knows that when Windows Defender is not operational (because you’re using another anti-malware solution), Controlled Folder Access can’t be active and thus needn’t be dealt with.  This avoids conflict between PowerGREP’s installer and certain heavy-handed anti-malware solutions such as BitDefender.

See also: PowerGREP 5.1.4 version history

PowerGREP 5.1.4 – 30 January 2018

The Windows 10 Fall Creators Update adds a new feature to Windows Defender called Controlled Folder Access.  It is disabled by default.  When enabled, it prevents applications from creating files and modifying files in folders commonly used to save personal data such as the Desktop and Documents folders.  The goal is to block ransomware.  In practice, it seems to block almost any application unless you specifically add it to the list applications allowed through Controlled Folder Access.  Even applications like installers that run with Administrator privileges are blocked by it.

PowerGREP’s installer has been improved to better deal with Controlled Folder Access.  It will no longer show an error message when it can’t create the desktop shortcut.  This is the only aspect of PowerGREP’s installation that is blocked when Controlled Folder Access is enabled with the default settings.  When you install PowerGREP for all users, the installer adds PowerGREP to the list of applications allowed through Controlled Folder Access, even when Controlled Folder Access is disabled.  This way you won’t run into issues when you try to process files in your Documents folder or on your desktop with PowerGREP.

The installer can’t do this when installing for the current user or when creating a portable install as then the installer doesn’t have the Administrator privileges needed to modify settings in Windows Defender.  Then you’ll need to manually add PowerGREP to the list of applications allowed through Controlled Folder Access to be able to modify files in your personal folders if you have Controlled Folder Access enabled.  You can do this in the Virus & Threat Protection settings in Windows Defender.  You don’t need to add the installer if you let it use the default installation folder.

PowerGREP’s built-in text editor gets a few fixes to how it saves files.  When Controlled Folder Access blocks Editor|Save from overwriting an existing file, PowerGREP now displays an error message saying it can’t save the file.  Previous versions of PowerGREP would pretend that the file was saved successfully.  Editor|Save can now also overwrite files that are in use by other applications, as long as there is no write lock on the file.  This does require backups to be disabled in the Editor section in the Preferences.  PowerGREP can’t move a file to a backup location while another application is using it.  Finally, the editor now takes note of the file’s new time stamp after saving a file.  It no longer falsely claims another application modified the file if you switch to another application and back to PowerGREP after saving.

Previous PowerGREP 5.x.x releases did not recognize the Unicode signature or byte order marker for UTF-16 BE (big endian) files.  They could still be detected correctly by the method for detecting Unicode files without a byte order marker.  That option is enabled in the predefined “specific auto detection” and “generic auto detection” text encoding configurations.  So this bug would only affect you if you have UTF-16 BE files and used a custom text encoding configuration that doesn’t try to detect Unicode files without a BOM.  On Windows, Unicode files typically use UTF-16 LE (little endian) rather than UTF-16 BE.

PowerGREP 5 can convert files to specific encodings and/or line break styles when you set “target file creation” to “convert matched files to text” or “convert copies of matched files to text”.  These choices are available when “action type” is set to “list files” or “file or folder name search”.  But previous releases of PowerGREP only did the conversion correctly when using the “list files” action type.  When using “file or folder name search” without a search term, the conversion was not done at all.  WIth a search term, you’d get errors.  Now, the conversion is done correctly and in the same way for both action types.

PowerGREP 5.1.3 – 7 November 2017

A “collect data” action writes search matches to one or more target files if you set the “target file creation” option at the bottom of the Action panel to something other than “do not save results to file”.  Doing so reveals a new option just above it labeled collect headers and footers.  Ticking this allows you to specify a source file header and footer that are collected for each file that matches were found in.  You can also specify a target file header and footer that are collected for each file that matches are written to.

When collecting headers and footers, you can tick expand placeholders to enable path placeholders and a limited set of match placeholders in headers and footers.  In source headers and footers, path placeholders refer to the file matches were found in.  %MATCHCOUNT% counts the number of matches found in the file.  In target headers and footers, path placeholders refer to the file being written.  %MATCHCOUNT% counts the number of matches written to that file.  %FILECOUNT% counts the number of source files of which matches were written to that target file.

This release fixes several bugs that makes sure headers and footers are collected correctly and placeholders in them are substituted correctly regardless of which other options you may have selected on the Action panel.

PowerGREP’s built-in converter for XLSX files has been updated to make it more reliable.  Files that previously caused it to crash are now converted correctly.

The File Selector now allows @ signs in the server and share names in UNC paths.  If a server or share doesn’t appear under the Network node in the File Selector, enter or paste \\server\share\ into the Path box.  Once you’ve entered the 4th backslash PowerGREP checks if it can access the UNC share exists.  If it does, the server and share are added under the Network node.

If another application modifies the file that you have open on the Editor panel, PowerGREP now asks whether you want to reload the file.  Previous 5.x.x releases reloaded the file without asking.  The prompt has a checkbox to not ask you again that you can tick to restore the previous behavior.  When the Editor panel reloads the file, it now preserves the position of the cursor instead of moving it back to the top of the file.

See also: PowerGREP 5.1.3 version history

PowerGREP 5.1.2 – 31 May 2017

PowerGREP 5.0.0 and later support regular expression recursion and subroutines.  Version 5.1.2 turns two forms of recursion that could never find any matches into syntax errors.  This way you don’t waste time running a search with a regex that could never produce any results.

Infinite recursion occurs when a regular expression attempts recursion without having advanced through the file.  When this happens, PowerGREP adds an error message to the Results panel and aborts the entire action.  The regex a|b?(?R) for example can match strings like a or ba or bba or any number of b’s followed by an a.  PowerGREP 5.1.2 still allows this regex because it would work just fine if all your files happen to contain nothing but the letters a and b.  But if a file contains any other character then when the regex reaches that character it would forever try to recurse.  So then PowerGREP aborts the action.

But the regex (?R)z would immediately and always lead to infinite recursion and thus abort the action because the recursion is at the very start of the regex.  Such regular expressions are now a syntax error.

Impossible recursion occurs when every alternative in the regular expression requires recursion.  When the regex a(?R)z matches the letter a it is forced to recurse.  It will match all following letters a.  When the last a has been matched the next recursion fails to find a match.  This causes all previous recursions to fail.  Thus this regular expression can never find any matches in any files.  Previously PowerGREP would fruitlessly search through all your files when using such a regex.  Now impossible recursion is a syntax error.

PowerGREP 5.1.2 also brings a bunch of bug fixes.  Printing files without syntax coloring now works correctly.  The “hide files and folders” configuration on the File Selector panel is now correctly applied to folders inside archives.  The “include folders” and “exclude folders” boxes now show their history lists when right-clicked.  Marking a drive for inclusion with a green tick mark now works correctly with actions that search through folder names.

The File Selector|Delete Files menu item now correctly deletes files inside all archives.  Previously the last archive was not updated.  This bug did not affect actions that delete files.  It only affected the menu item.

On the Results panel, sorting matches alphanumerically now works correctly.  Previously, alphanumeric order was only correct if you selected it on the Action panel.  If you did not, selecting alphanumeric match order on the Results panel caused matches to be grouped and sorted incorrectly.  Alphanumeric order is new since PowerGREP 5.0.0.  Alphabetic order which PowerGREP has had since version 1.0.0 was not affected by this bug.

See also: PowerGREP 5.1.2 version history

PowerGREP 5.1.1 – 9 May 2017

Two bugs were fixed to ensure that the Results panel makes backups correctly.  In PowerGREP 4, the Results panel used the backup option from the Editor Preferences.  But in PowerGREP 5 the Results panel uses the backup option you had on the Action panel when you previewed or executed the search-and-replace.  This ensures backups are made in the same way whether you make replacements using the Replace button on the Action panel versus using the Preview button on the Action panel and then using the Make All Replacements button on the Results panel.  But this change introduced a couple of bugs.  PowerGREP 5.0.0 though 5.1.0 did not make backups when making or reverting replacements on the Results panel if “no backups” was selected in the Editor Preferences.  They would fail to make or revert replacements if “no backups” is selected on the Action panel and another backup option is selected in the Editor Preferences.  These two bugs have been fixed.  Now, the Results panel correctly uses the backup settings you had on the Action panel at the time the results were produced, regardless of what you specified in the Editor Preferences.

Previewing or executing a search-and-replace or a collect data action failed with an access violation if the replacement string or the text to be collected contained a backreference to a capturing group followed by a token that inserts the whole regex match.  This bug was introduced in PowerGREP 5.0.0.  It has now been fixed.

Actions that are aborted because of a regular expression that exhibits catastrophic backtracking or infinite recursion now show a proper error message in the bottom half of the Results panel that explains what you need to do to fix your regular expression so the action can run.

On the File Selector the Show Files with Results option now correctly shows files and folders with results.  In PowerGREP 5.0.0 through 5.1.0 it showed folders containing files with results, but not the files themselves.  Explicitly marking a folder with a double green tick mark now includes that folder and its subfolders in the search even when that folder is matched by the “exclude folders” mask.  This behavior is now consistent with that for folders and files marked with a single green tick mark which are also included regardless of any exclusion masks.

On the Sequence panel, the Comments box now wraps long lines just like the Comments boxes on the Action and Library panels already did.  The list of steps now uses semicolons to delimit folders for steps that have their own file selection with multiple marked folders.

If your computer’s internet connection needs to go through a proxy server then you’ll need to give PowerGREP the details of that server if you want PowerGREP to be able to download syntax coloring and file navigation schemes (Editor Preferences) or to automatically check for news and updates.  You can do this by clicking the Settings button in the scheme download windows or by clicking the Proxy button after selecting Help|News and Updates in the menu.  PowerGREP 5.0.6 and prior saved proxy settings with PowerGREP’s own preferences.  PowerGREP 5.1.0 failed to save proxy settings.  PowerGREP 5.1.1 saves proxy settings with the preferences for automatic news and updates.  This allows your proxy settings to be used by all our applications (at least the latest versions that have the ability to check for news and updates).  This way you need to configure your proxy server only once for all our applications.

PowerGREP 5.1.0 – 28 March 2017

PowerGREP’s installer can now install PowerGREP for the current user only without needing administrator privileges.  To install PowerGREP this way, click the Advanced Installation button and then the Install for Current User button.  This choice is only available the first time you install PowerGREP.  If you want to change, you’ll need to uninstall and reinstall.

If you click the Immediate Installation button then you’ll automatically get a per-user installation if you run the installer from a Windows user account that cannot obtain administrator privileges, and PowerGREP was not previously installed for all users.  If you have PowerGREP 5.0.x installed, that counts as an installation for all users.

Previous versions of PowerGREP already supported portable installations that don’t require administrator privileges.  These are still supported.  The disadvantage of a portable install is that it won’t create file associations or shortcut icons.  The new per-user installs are full-featured installs with file associations and shortcut icons and everything.  The installer for the free trial version also supports per-user installs (but not portable installs).

PowerGREP 5.0.0 made it possible to directly search through the contents of the clipboard by adding the clipboard as a node to the File Selector.  PowerGREP 5.1.0 expands on this by allowing you to import file listings from the clipboard.  If you click the Import button on the File Selector panel then you will see a new Paste button on the Import File Listings dialog box.  This adds a reference to the clipboard as a “file” to import file listings from.

In the External Editors section in the Preferences you can now select whether an editor should be available to open files, folders, and/or archives.  This allows you to easily open folders and archives in external file managers.  The Explore Folder command in the File Selector’s context menu now uses your computer’s default file manager instead of always using Windows Explorer.

When an action overwrites files, backup copies are now created more reliably.  Some backup options can use the same folder for backups of files that are in different folders.  Setting “backup file destination type” to “single folder” is the most obvious way to create this situation.  If your action ends up modifying multiple files with the same name then there can be a naming conflict when they are backed up into a single folder.

If you set “backup file naming style” to any of the “multi” options then PowerGREP now ensures that it always uses unique names for backups of files with the same name.  Previously it could accidentally use the same name if it modifies multiple files with the same name at the same time.

If you set “backup file naming style” to one of the “single” options then the name of the backup is always the same.  In this situation PowerGREP now refuses to modify the second and following files with any given name that need to be backed up.  It adds an error explaining this to the results.  Previously, PowerGREP would modify all the files.  The backups of the second and following files with a given name would overwrite the backup of the previous files with the same name.

Backup file destination types that place backups in archives now create folder trees inside the archive when a folder is included with its subfolders and the target type is set to modify the original files or to place target files into a folder tree or archive.  This makes backup file destination types that use archives consistent with target file destination types that use archives.  It also makes them consistent with how the Assistant panel says they’re supposed to work.

Backups are now created correctly when you mark a folder inside an archive and set “backup file destination type” to “folder tree”.  Previous versions of PowerGREP would fail to create backups and as a result would not overwrite any files in this situation.

PowerGREP’s converter for XLS and XLSX files is now significantly faster on spreadsheets that contain large numbers of blank cells.  Currency values in XLS files now correctly show the currency symbol.

PowerGREP now supports the RAR 5.0 archive format.  If you enable “RAR archives” in the archive format configuration then PowerGREP automatically checks whether each .rar file uses the old or the new RAR format.

PowerGREP can now search through disk images using the NTFS (Windows), HFS+ (OS X), ext2, ext3, and ext4 (Linux) file systems.  You can enable or disable these as part of the archive format configuration.  If you upgrade from PowerGREP 5.0.x to 5.1.0 then these new formats are automatically added to the predefined archive format configurations.  If you load an action or file selection saved with a previous version of PowerGREP, then the new formats are not automatically added.  This ensures that a saved action or file selection continues to work exactly the way it did when you saved it.  If the saved file selection uses a archive format configuration as predefined in 5.0.x then this is indicated with a number such as (2) in the File Selector to indicate that it uses different settings from the new predefined configuration in 5.1.0.

On the Sequence panel, adding, deleting, and reordering steps now preserves file selection references between steps.  If a step has its own file selection, the list of steps now shows a summary of that file selection instead of the text “own file selection”.  That makes it easier to distinguish those steps if your sequence has multiple steps with their own file selections.  If a step references the file selection of another step that is set to use the File Selector, then both steps now correctly use the File Selector.  Previously the step with the reference would not search through any files at all.

PowerGREP is now able to automatically check for updates and other news.  You can also make it check on request by selecting Help|News and Updates in the menu.  When PowerGREP shows news or when the check on request tells you there is no news you can click the Settings button to choose which news items you want to see.  By default, PowerGREP automatically shows news and updates for itself and any of our products that you’ve used in the past 30 days.  Though for those other products that will only start working once they gain the ability to automatically show news.

News settings and history will be shared between all our products so you won’t see the same news more than once.  Each product will automatically show at most one news item per day and at most one news item on request.  So you don’t need to worry about ever being bombarded with news if you haven’t used our software for a while.  You won’t see the news item announcing PowerGREP 5.1.0 either because that will be considered old news already when you’ve upgraded to PowerGREP 5.1.0.

See also: PowerGREP 5.1.0 version history

PowerGREP 5.0.6 – 25 January 2017

This release fixes a bunch of recently introduced bugs. Since version 5.0.0, saving a file stored inside an archive failed with an access violation if a backup copy needed to be created. Since version 5.0.3, searching through individually compressed files (.gz, .bz2, .lzma, and .xz) could cause PowerGREP to crash completely. Since version 5.0.4, actions using the “count matches” action type could not be previewed or executed and actions using the “convert matches files to text” or “convert copies of matches files to text” target type could not be executed. Version 5.0.6 restores all this functionality to the way it worked prior to these versions.

The Excel converter was also improved, allowing PowerGREP to search through XLSX files that it previously failed to read.

See also: PowerGREP 5.0.6 version history

PowerGREP 5.0.5 – 6 January 2017

This release fixes a bug that could cause PowerGREP to freeze or crash completely when searching through certain DOCX files (documents saved by Microsoft Word 2007 or later). If you use PowerGREP 5.0.x to search through plain text conversions of DOCX files, then you should upgrade to version 5.0.5 immediately.

PowerGREP’s built-in converter for DOC files (documents saved by Microsoft Word 2003 or prior) is now capable of converting DOCX files that have an incorrect .doc extension to plain text. Previously it would produce cryptic errors indicating the DOC file was unreadable. The reverse is not true. PowerGREP’s DOCX converter will not open DOC files that have an incorrect .docx extension. It will say that the file is not a valid DOCX file. The reason is that PowerGREP’s DOCX converter is capable of reading and writing DOCX files. But PowerGREP’s converter for the legacy DOC format is read-only.

Many of the syntax coloring schemes used by PowerGREP’s built-in editor highlight URLs and email addresses as links. Double-clicking such links now opens the link. Exactly what happens depends on the syntax coloring scheme. Links can open another file in PowerGREP’s editor, open a file in its default application, or open an URL in a web browser. If you want to change how links are opened, you’ll need to use the syntax coloring scheme editor to edit the syntax coloring scheme you’re using. In the Syntax Coloring section in the Preferences you can specify which scheme should be used for which files.

On the action panel, if you set “target file destination type” to “compressed archive”, PowerGREP now checks that the target file location is for an archive format that PowerGREP can create before running the action. If it is not, the Assistant panel explains this and the action does not run. Previously PowerGREP accepted any archive format, which caused the action to fail with various errors if the archive format was not writable.

See also: PowerGREP 5.0.5 version history

PowerGREP 5.0.4 – 15 December 2016

This release fixes several bugs related to sequences. When adding a sequence to a library, sequence steps that referenced file selections from other steps did not retain the number of that step. When loading the sequence from the library, such steps would always reference step 1. Even if you edited the PowerGREP library file outside PowerGREP to fix the reference it would still be loaded incorrectly. This bug is now fixed. The fix can’t restore step references that were already lost. If you added sequences with steps that reference other steps to a library, load them from the library, fix the step references on the Sequence panel, and then add the sequence back to the library.

Sequence actions (.pgsa files) saved with Sequence|Save and sequence results (.pgsr files) saved with Sequence|Save Results did correctly retain sequence step references. They were also correctly loaded by the Sequence|Open menu item. So if you’ve been saving sequences into separate files rather than in libraries then there was never any issue.

When executing a sequence, the progress meter on the Results panel would disappear as soon as the first step had run to 100%. The only indication on the Results panel that the sequence hadn’t finished yet was that the Abort button would still be enabled. On the Sequence panel, you could tell by looking at the Results column in the list of steps, which is updated one step at a time. Now the progress meter remains visible throughout the sequence’s execution. It goes from 0% to 100% for each step. The label on the progress meter indicates which step is being executed. The percentage and estimated remaining time only apply to that step.

The results of the first step in a sequence were not initialized correctly. This could cause crashes or incorrect results in certain circumstances. If you executed a sequence that had a “merge files” action as its last step, for example, and you then executed a sequence that had another type of action as its first step in the same PowerGREP instance, then the first step of the second sequence would fail with access violation errors. This bug was introduced in PowerGREP 5.0.0 and is now fixed.

Whenever PowerGREP validates a target path it no longer allows trailing dots in file and folder names. Windows does not treat such paths as an error. Windows silently loses the trailing dot. This could cause PowerGREP to get confused when the actual target path (without trailing dots) differs from the path PowerGREP thought it was using (if you specified it with trailing dots).

If you set “target file creation type” to “single file” then the target file location is now validated before running the action. Invalid paths now prevent the action from running instead of failing to save the file at the end.

If you set “target file creation type” to something that computes a target path for each file searched through then PowerGREP 5.0.0 and later allow you to specify a relative path. A path that begins with a file or folder name is taken as relative to the folder containing the source file. A path that begins with ..\ is taken as relative to the parent folder of that folder. This was all working correctly. If you work a lot with UNIX or Linux systems then you may have the habit of using .\ or ./ to specify relative paths. This prefix is not needed on Windows as on Windows all paths without a drive letter or UNC share are relative. But PowerGREP now recognizes the single dot prefix nonetheless.

PowerGREP can now search through RPM packages that are internally compressed with BZip2 or XZ. Previously only RPM packages internally compressed with GZ or LZMA were supported. If you enable the archive format for RPM packages in the archive format configuration then all four compression methods are automatically enabled for the RPM format. The settings for GZip files, BZip2 files, LZMA files, and XZ files do not affect RPM packages.

Windows 10 changes the way the mouse wheel works in Windows. In older versions of Windows, the wheel scrolled the window that had keyboard focus, regardless of the position of the mouse pointer. In Windows 10, the wheel scrolls the window under the mouse pointer. PowerGREP now correctly implements the Windows 10 mouse wheel behavior when running on Windows 10. The mouse wheel behavior in PowerGREP is unchanged when running on an older version of Windows.

See also: PowerGREP 5.0.4 version history

PowerGREP 4.7.3 – 15 December 2016

Several issues that were fixed in PowerGREP 5.0.4 also affected PowerGREP 4. These same issues are now fixed in PowerGREP 4.7.3 too.

This release fixes several bugs related to sequences. When adding a sequence to a library, sequence steps that referenced file selections from other steps did not retain the number of that step. When loading the sequence from the library, such steps would always reference step 1. Even if you edited the PowerGREP library file outside PowerGREP to fix the reference it would still be loaded incorrectly. This bug is now fixed. The fix can’t restore step references that were already lost. If you added sequences with steps that reference other steps to a library, load them from the library, fix the step references on the Sequence panel, and then add the sequence back to the library.

Sequence actions (.pgsa files) saved with Sequence|Save and sequence results (.pgsr files) saved with Sequence|Save Results did correctly retain sequence step references. They were also correctly loaded by the Sequence|Open menu item. So if you’ve been saving sequences into separate files rather than in libraries then there was never any issue.

When executing a sequence, the progress meter on the Results panel would disappear as soon as the first step had run to 100%. The only indication on the Results panel that the sequence hadn’t finished yet was that the Abort button would still be enabled. On the Sequence panel, you could tell by looking at the Results column in the list of steps, which is updated one step at a time. Now the progress meter remains visible throughout the sequence’s execution. It goes from 0% to 100% for each step. The label on the progress meter indicates which step is being executed. The percentage and estimated remaining time only apply to that step.

Windows 10 changes the way the mouse wheel works in Windows. In older versions of Windows, the wheel scrolled the window that had keyboard focus, regardless of the position of the mouse pointer. In Windows 10, the wheel scrolls the window under the mouse pointer. PowerGREP now correctly implements the Windows 10 mouse wheel behavior when running on Windows 10. The mouse wheel behavior in PowerGREP is unchanged when running on an older version of Windows.

See also: PowerGREP 4.7.3 version history

PowerGREP 5.0.3 – 24 November 2016

Path placeholders and match placeholders were broken in PowerGREP 5.0.2. This functionality has now been restored.

Outlook PST files that contain messages with a completely blank RTF body are now searched through correctly. Though they have no body text, the plain text conversion of the empty body still includes the basic email headers.

If you configure the same color for the editor background and for the cursor in the Preferences, PowerGREP now immediately adjusts the cursor to use the text color rather than the background color to keep the cursor visible.

PowerGREP 5.0.2 – 31 October 2016

This version fixes a bug introduced in PowerGREP 5.0.0 that causes data loss. Even though it only happens in a specific situation that most people will never encounter, upgrading to 5.0.2 is strongly recommended. The bug affects PowerGREP’s new ability to rename folders with the “rename files or folders” action type. It only occurs when the original name of the folder and the name that the folder should have after renaming differ only in case, such as “folder” and “Folder”. In that case, PowerGREP 5.0.0 and 5.0.1 deleted the folder instead of renaming it. PowerGREP 5.0.2 now correctly renames the folder. The bug did not affect folders where the target name is identical to the original name. Those folders are simply not renamed at all. It also did not affect folders where the original name and the target name had differences other than differences in case. Those were renamed correctly.

New in PowerGREP 5 is the ability to search through email stored in separate files in Outlook (*.msg) or MIME (*.eml) format or in mailbox files in Outlook (*.pst), Outlook Express (*.dbx), or MBOX format. With the “file formats to convert to plain text” setting on the File Selector panel, you can choose whether to search through a plain text conversion of the email’s basic headers and body text (ignoring attachments), or whether to search through email attachments (treating the body text as an attachment). PowerGREP 5.0.2 now includes basic headers with the plain text conversion of emails in PST files, as it already did with the other email formats. It now also includes a plain text conversion of the basic headers as a separate attachment called headers.txt (Outlook or single part MIME) or 0.txt (multipart MIME) when searching through attachments. Previously, email headers could not be searched through at all when searching through attachments. Several bugs that caused PowerGREP to crash on certain Outlook MSG files and to skip certain PST files have been fixed.

Also new in PowerGREP 5 is the ability to make replacements in files in certain proprietary formats, such as DOCX (MS Word) and ODT (OpenOffice) files. This worked correctly when using the Replace or Quick Replace buttons on the Action panel to make replacements while executing the action. But it failed with an access violation (leaving the files untouched) when using the Make/Revert Replacements buttons on the Results panel to make or revert the replacements after reviewing them. This bug has been fixed.

PowerGREP 5.0.0 and 5.0.1 sometimes extracted the wrong file from an archive. This could happen when an archive contained two files where the path of one file in the archive appears entirely at the start of the path of another file in the archive. An example is an archive containing the files “file.doc” and “file.docx” in the same folder. These files then have the same path with the second file having an extra “x” at the end. In that case, PowerGREP 5 sometimes extracted the file with the longer name when it needed to extract the file with the shorter name. Whether this happened depended on the order in which the files are physically stored in the archive. The file with the longer name was always extracted correctly. PowerGREP 5.0.2 will now extract the files correctly. This bug did not occur in PowerGREP 4.7.2 or any preceding release.

The %LINEN%, %LINENZ%, %LINENA%, %SECTIONN%, %SECTIONNZ%, and %SECTIONNA% match placeholders now work correctly. The “source file footer” is now collected correctly by “collect data” actions. File masks that include a compound document now correctly include the files inside the compound document. The /masks command line parameter now correctly handles the five values that it needs in PowerGREP 5. In PowerGREP 4 it needed only three values.

See also: PowerGREP 5.0.2 version history

PowerGREP 5.0.1 – 23 September 2016

Several features from PowerGREP 4 that were broken in version 5.0.0 have been fixed. You can again execute “split files” actions with “between collected text” set to “nothing”. Importing file listings again recognizes UNC paths. PowerGREP Results files saved with PowerGREP 4 or earlier that contain matches in files inside archives can again be opened in PowerGREP 5. File name search actions now say “X files found” in the results instead of “0 matches in X files”.

Several features that are new in PowerGREP 5 have also been fixed. The action type “file or folder name collect” now collects each file or folder only once, even when it has multiple regex matches, just like “file or folder name search” only lists each file or folder once. Backreferences to named capturing groups can now be used inside replacement string conditionals. Actions that build target paths from regex matches or path placeholders validate those paths before using them. This validation now recognizes UNC paths.

A few older issues with importing file listings have been addressed. Clicking the Import button when there is no previous file listing no longer uses the file you selected in the files and folders tree for importing when you cancel the Import dialog. The file listing (to be imported when executing the action) can now be cleared by importing an empty list of files.

PowerGREP 4.7.2 – 23 September 2016

A few issues that were fixed in versions 5.0.0 and 5.0.1 also affected PowerGREP 4. Version 4.7.2 brings the same fixes to PowerGREP 4.

Clicking the Import button when there is no previous file listing no longer uses the file you selected in the files and folders tree for importing when you cancel the Import dialog. The file listing (to be imported when executing the action) can now be cleared by importing an empty list of files.

Deleting the last item in the undo history no longer leaves the details of that item visible.

PowerGREP 5.0.0 – 6 September 2016

High Resolution Toolbar Icons

The most apparent change in PowerGREP 5 are the new toolbar icons. The new flat look of the icons better matches the flat look of Windows 10. PowerGREP includes them in 10 different sizes that cover all the scaling increments from 100% to 400% available in the basic display settings in Windows. PowerGREP can now correctly scale its toolbars on all PC and laptop displays, including small laptops with 4K screens.

Tick and X marks that indicate whether files are included or excluded in the files and folders tree on the File Selector panel are now scaled on high DPI systems, making them the same size as the file and folder icons they sit next to. The various file types that PowerGREP uses now have distinct icons in Windows Explorer and other file managers so you can distinguish files with similar names but different extensions more easily.

File and Archive Formats

The most significant changes in PowerGREP 5 concern its handling of file and archive formats. In previous versions of PowerGREP, file formats, archive formats, text encodings, and permanent exclusion were all configured in the Preferences. The problem with that was that a PowerGREP Action File (*.pga) did not uniquely define the action, because its exact execution depends on settings made in the Preferences, making it difficult to ensure consistency in future runs of the action, and making it difficult to adjust file format settings to fit each action. Particularly this latter aspect made it necessary to move these settings out of the Preferences. PowerGREP 5 supports many more file formats and some in multiple ways. One configuration can no longer fit all actions.

File formats, archive formats, text encodings, and permanent exclusion are now all configured on the File Selector panel. You can select existing configurations directly from drop-down lists. You can edit all configurations or add your own via the (...) buttons. There are many predefined configurations that cover most scenarios. You can still edit these via the Preferences. But the configurations you choose in the Preferences now only act as a default. The configurations you choose on the File Selector panel are the ones used when executing the action. When you save a PowerGREP File Selection (*.pgf) or PowerGREP Action (*.pga) file, the actual configurations are saved. This ensures that when you load the .pgf or .pga file later, you will be using the exact same settings as when you saved it. If you edited one of the configurations in the mean time, the loaded settings will appear with a (2) in the drop-down list, to indicate the loaded settings are not the same as those of the existing configuration with the same name.

If you load a .pgf or .pga saved with a previous version of PowerGREP then PowerGREP 5 will add configurations named PowerGREP 1, 2, 3, or 4 with the default preferences from that version of PowerGREP. You should review these legacy configurations as they disable the file and archive formats newly supported by PowerGREP 5.

PowerGREP has long been able to convert popular file formats like PDF and Office files into plain text so they can be searched through. In PowerGREP 4 and prior, such conversions were one-way, making it impossible to make changes to such files. Now, PowerGREP includes two-way converters for certain file formats. This means you can search-and-replace through DOCX files (Word 2007 and later), ODT files (OpenOffice Writer), JPEG/EXIF metadata, Audio file metadata (MP3, FLAC, WMA, etc.), CorelDRAW metadata, MIME email messages (EML files), web archives (MHT files saved by IE), Windows shell links, and AceText collections.

HTML and RTF files can now be converted to plain text too. These conversions are also two-way. You can search or search-and-replace through HTML and RTF files without having to deal with HTML tags or RTF codes. This is also the best example of why there are now many configurations that you can select directly on the File Selector. Select “all formats” or “all writeable formats” if you want HTML and RTF to be converted to plain text. Select “proprietary formats” or “writeable proprietary formats” if you want to search through the raw HTML and RTF, while still converting files like Office files that require conversion to be searchable.

XPS and OXPS files ((Open) XML Paper Specification) can now be searched through. XPS files do not necessarily store text in a meaningful order. PowerGREP mimics the visual page layout as much as possible to make it easier to get meaningful search results. XPS is a virtual paper format that, like PDF, is not designed to be editable. PowerGREP cannot make changes to XPS files.

Conversion of many previously supported formats has been improved. PowerGREP no longer needs an IFilter to convert DOCX and ODT files. PDF files can now have their text converted in reading order. Mimicking the visual page layout is still the default.

PowerGREP can now search inside more archive formats. PowerGREP can now compress and decompress individual files and tarballs using LZMA. PowerGREP can now search inside (but not modify files inside) compressed and uncompressed CPIO archives. The Search Archives item in File Selector menu, which was all or nothing, has been replaced with the archive format configuration on the File Selector panel. This allows you choose which specific archive formats you want to search through.

PowerGREP can now search through email. PowerGREP supports MBOX mail folders, used by qmail, Thunderbird, and many other email clients and servers. PowerGREP also supports Outlook mail folders (PST files) and Outlook Express mail folders (DBX files). The archive format configuration determines whether PowerGREP searches through mailboxes or not. When enabled, MBOX, PST, and DBX files appear as folders in the File Selector, with the email messages as files under them.

PowerGREP 5 supports Outlook email messages inside PST files and stored separately as MSG files. It also supports MIME email messages and UUEncode email messages inside MBOX or DBX files and stored separately as EML files. In the file format configuration, you can choose whether PowerGREP should convert these files to plain text or treat them as compound documents. Converting to plain text treats each email as a single file containing the message body text. Treating as compound documents treats emails with attachments as folders that contain the body text as a file plus all attachments as separate files. The predefined file format configurations labeled “attachments” use the latter option.

More File Selector Improvements

After running a search that covers a large number of files, like you entire C drive, the File Selector panel could be slow to respond to changes, like entering new file masks. Now such changes are applied instantly, even after running a large search. Expanding large folders could be slow as PowerGREP retrieved file-specific icons. Particularly retrieving icons for executable files while an on-access virus scanner is active can be quite slow. Now, the File Selector displays generic icons for all files.

Clipboard and Editor nodes in the files and folders tree allow you to mark the contents of the clipboard and PowerGREP’s built-in editor to be processed by a PowerGREP action. Even making replacements is possible.

New include folders and exclude folders boxes allow you to specify file masks to include or exclude folders based on their names. Excluding folders using “exclude folders” is more efficient than using file masks with backslashes with “exclude files”, like you had to do previously, because PowerGREP does not need to glob folders that are excluded entirely.

File sizes are no longer rounded to the nearest kiB, MiB, or GiB and you can enter numbers beyond 32767, making searches for exact file sizes possible. Sizes can now be specified as multiples of 1,000 (kB, MB, GB) as well as multiples of 1,024 (kiB, MiB, GiB).

Action Panel Improvements

The “file name search” and “rename files” action types are now called “file or folder name search” and “rename files or folders”. The “what to search through” and “what to rename” options now give you a choice between files, folders, or files plus folders. When searching through folder names, you can use new target types to copy or move matched folders. Folders can be copied or moved as a whole with all their contents (ignoring permanent exclusion settings), backing up the target folder if it exists as a whole. Alternatively, the contents of matching folders can be copied or moved, skipping files that are permanently excluded, merging the folder with the target folder if it exists, backing up any overwritten files separately.

The new “file or folder name collect” action type complements the “file or folder name search” action type in the same way that the “collect data” action type complements the “search” action type. It allows you to collect parts of the names of files or folders into a new file using replacement text syntax for the text to be collected, with the option to apply extra processing. Headers and footers can be added to the target file too. This makes it easy to collect a list of files that is more than a bare list of file names.

The new “count matches” action type counts the number of times each search term matched in each file or in all files. The results show the list of search terms (or their labels if you labeled them) rather than the list of actual matches. Search terms without matches are included in the results. Regular expressions that find many different matches have all their matches counted towards the regex, rather than counting how many times each different match is found like the other action types do.

You can now use placeholders in file headers and footers. This includes all existing placeholders related to the action or the file. %MATCHCOUNT% can now be used in source and target file footers to write the number of matches found in the source file or the number of matches written to the target file. The new %FILECOUNT% placeholder can be used in target file footers to write the number of source files that had their matches written to that target file. While the existing %GUID% placeholder changes with each replacement, the new %GUIDFILE% placeholder only changes with each file, while %GUID1% through %GUID9% change only when you start executing the action or sequence. These new placeholders allow the same GUID to be used in the replacement text in multiple places.

All action types that offer the “save results into a single file” target file creation option, now offer additional “copy to clipboard” and “store in editor” target types. This way you can have the results put onto the clipboard or into PowerGREP’s built-in editor directly, without saving them to file first.

When the Action panel is large enough to allow multi-line edit controls to expand beyond their minimum size, these are now resized automatically based on the number of lines of text they contain. This happens when you edit their text and when you resize the panel. This reduces the amount of space wasted for controls with little or no text. This leaves more space for those with many lines, reducing their need for scroll bars.

Regular Expressions

PowerGREP’s regular expression syntax has been extended to support the newest features from other regex flavors. PowerGREP now supports balancing groups like the .NET regex flavor and branch reset groups like Perl and PCRE. Also new is character class intersection using the [class&&[intersect]] syntax like Java and Ruby. The nested pair of square brackets is required. PowerGREP does not support the [class&&intersect] syntax as this could lead people to write [class&&intersect&&again] which behaves unpredictably in Java and Ruby.

In Perl and PCRE you can use \K to keep text out of the match to work around their restrictions on lookbehind. While \K is not really needed in PowerGREP with its unrestricted lookbehind, you can now use \K in PowerGREP like you would in Perl or PCRE if you are used to writing your regexes that way.

Perl, PCRE, and Ruby all support regular expression recursion and subroutines. These three have largely copied each others syntax, resulting in multiple ways to write recursion and subroutines. But these three have not copied each others matching behavior, resulting in clear behavioral differences despite the similar syntax. PowerGREP provides three sets of syntax for recursion and subroutine calls. Each set of syntax follows the matching behavior of one of these three flavors. Like in PCRE, (?P>name) does not capture, reverts capturing groups, and is atomic. You can remember this syntax by its similarity to that of atomic groups. Unlike PCRE, PowerGREP also supports (?P>1) and (?P>0) so you can specify this behavior for a numbered call and for recursion. Like in Perl, (?R), (?1), and (?&name) do not capture, revert capturing groups, and allow backtracking. You can remember this syntax by the ampersand that is used in &subroutine(); calls in Perl code. Finally, like in Ruby, \g<0>, \g<1>, and \g<name> capture the match of the subroutine call, do not revert capturing groups, and allow backtracking. You can remember this syntax by the fact that Ruby’s regex flavor does not support any other syntax for recursion and subroutine calls.

\h is a new shorthand character class for horizontal whitespace. It includes spaces, tabs, and all Unicode whitespace except line and paragraph breaks. \v used to be an escape that matches the vertical tab. Now \v is a shorthand for vertical whitespace. This includes the vertical tab, line breaks, page breaks, and paragraph breaks. \v matches CR and LF separately. \H and \V are the negated versions of these two new shorthands.

\R is a new special escape that matches any line break, including Unicode line breaks. What makes it special is that it treats CRLF pairs as indivisible. It matches CR and LF on their own when they occur in the subject string on their own. But when the subject string contains CRLF as a sequence, \R matches the entire CRLF pair.

\l and \u are now shorthands for \p{Ll} and \p{Lu}. These match any Unicode lowercase or uppercase character. These tokens are always case sensitive.

POSIX classes using the notation [[:alpha:]] now match only ASCII characters. The \p{Alpha} notation still matches Unicode characters. [[:d:]], [[:s:]], [[:w:]], [[:l:]], and [[:u:]] are now shorthands for [[:digit:]], [[:space:]], [[:word:]], [[:lower:]], and [[:upper:]]. You can treat them as ASCII-only versions of \d, \s, \w, \l, and \u.

\i and \c are now XML shorthand character classes. \cA through \cZ are no longer supported as control character escapes.

Octal escapes must now be written as \o{377}. The octal number can range from \o{0} to \o{177777}. The old \0377 syntax is now an error. PowerGREP has never supported \377 as that is too confusing with the syntax for backreferences. \0 too is now an error, instead of matching a literal zero. Use \x00 to match NULL bytes.

Replacement Strings

Since version 1.0 PowerGREP has made it possible to replace different search matches with different replacements by using a list of search terms where each search term has its own replacement. With the non-overlapping search option, this is just as efficient as searching for a single regular expression. But sometimes it can be more practical to use a single regular expression with different replacement strings.

PowerGREP’s replacement string syntax has been extended with replacement string conditionals to make this possible. (?1matched:unmatched) and ${1:+matched:unmatched} insert matched if the first capturing group participated in the match or unmatched if it did not. Just like conditionals in the regular expression, a capturing group that finds a zero-length match is considered to have participated. The first syntax is borrowed from Boost. The second from PCRE2. When using named capturing groups, you can use (?{name}matched:unmatched) and ${name:+matched:unmatched} to reference them in replacement string conditionals. You can use the full replacement string syntax inside a conditional, including nested conditionals. Conditionals that reference non-existing groups are an error. If you want to insert the text captured by the group when it participated and something else when it did not, you can use ${group:-unmatched}.

As a consequence of adding this syntax, PowerGREP 5 treats \?, \:, \(, \), \{, and \} as escaped characters that insert one of these six punctuation characters literally. PowerGREP 4 and prior treated these as literal backslashes, inserting both the backslash and the following punctuation character literally into the replacement.

PowerGREP 4.7.1 – 14 June 2016

The Library panel is now more responsive to your edits. Adding or editing an item now scrolls the list to keep the selected item in view. Editing an item’s description now immediately puts it in the correct alphabetical order.

A bunch of bugs were fixed. Converting XLSX and WordPerfect files is now more reliable. You can now use “invert search results” and “file sectioning” at the same time with “list files” actions. You can now use the “path placeholders” target file creation option with “search” and “collect data” actions that group identical matches. Files inside a folder with a name that is exactly one character long inside an archive are now handled correctly.

PowerGREP 4.7.0 – 24 September 2015

This release brings some cosmetic changes to PowerGREP’s menus and toolbars to better fit the style of Windows 10. These changes only take effect when PowerGREP is actually running on Windows 10. Screen shots and videos have been updated to show PowerGREP running on Windows 10.

This release also fixes a bunch of bugs that occurred in very specific circumstances, which are different for each bug. The version history has the complete list.

PowerGREP 4.6.5 – 4 May 2015

PowerGREP is capable of searching through very large files, including files larger than 4 GB, with minimal memory usage. A “collect data” action with target files specified in the Action panel can also write any number of search matches to disk (limited only by disk space) with minimal memory usage. But if you want PowerGREP to display search matches on the Results panel for manual inspection, then those matches and their context (if any) are all kept in memory. Typically, PowerGREP will use about 1 GB of RAM for one million search matches. PowerGREP can also keep temporary files in memory to speed up certain actions. In the Preferences you can configure how much memory PowerGREP can use for search results and for temporary files. In the 64-bit build of PowerGREP, this can add up to more than 4 GB of RAM. If a single PowerGREP instance actually ends up using more than 4 GB of RAM then random crashes could occur in the 64-bit builds of previous PowerGREP 4.x.x releases due to a bug in the user interface library. If PowerGREP was running unattended (so the UI bug wouldn’t be triggered), then communication with its undo manager and conversion manager could fail.

If you need to be able to inspect millions of search matches on the Results panel (rather than writing them to file with minimal memory usage via the Quick Collect button), then you should upgrade to PowerGREP 4.6.5 immediately. If you need to continue using an older 4.x.x release for any reason, then you should make sure that the memory limits in the Preferences add up to no more than 3 GB. The extra 1 GB of headroom is more than enough to cover memory usage that does not count towards the configurable limits.

PowerGREP 3.0.0 introduced match placeholders, including %MATCHSTART% and %MATCHSTARTZ% which are substituted with the position of the search match in the file. As specified in the documentation, these were supposed to count the number of bytes from the start of the file until the search match, with %MATCHSTART% counting from 1 and %MATCHSTARTZ% counting from 0. But in reality %MATCHSTART% counted from 0, and %MATCHSTARTZ% counted from -1. Since this off-by-one bug is so old, we didn’t want to change these placeholders to match the documentation as that could introduce off-by-one bugs in PowerGREP actions using these placeholders that our users may have saved or scheduled to automate certain tasks. So instead we have resolved this by changing the documentation to indicate %MATCHSTART% starts counting at zero. %MATCHSTARTZ% has been removed, as counting from -1 is rarely useful and is not in line with other placeholders that have a Z suffix. PowerGREP 4.0.0 and later have placeholder arithmetic. You can use %MATCHSTART:+1% to count the number of bytes to the start of the match starting from one. If you were using %MATCHSTARTZ% you can replace that with %MATCHSTART:-1%. Since the actual behavior of %MATCHSTART% has not changed, %MATCHSTART:-1% will work with all past and future PowerGREP 4.x.x releases. %MATCHSTARTZ% is treated as literal text in 4.6.5 and later. All this also applies to %MATCHSTOP% and %MATCHSTOPZ% which indicate the end of the match and to placeholders like %GROUP1START% and %GROUPNAMESTOP% which indicate the positions for numbered and named capturing groups.

Certain combinations of nested capturing and non-capturing groups triggered an access violation when attempting to execute the action. \b(([A-Z]{2,})(?:_| )([A-Za-z0-9]{2,}))\b for example triggered this bug. Using only capturing groups as in \b(([A-Z]{2,})(_| )([A-Za-z0-9]{2,}))\b or eliminating needless groups as in \b([A-Z]{2,})[_ ]([A-Za-z0-9]{2,})\b worked around the issue.

Normally the regex syntax \k’name’ or (?P=name) is used for named backreferences. PowerGREP 4 allows this syntax to be used with a number instead of a name, thus forming a numbered backreference. This can be useful to separate the digit for the backreference from any literal digits immediately after the backreference. This worked correctly when executing actions. But syntax highlighting on the Action panel always indicated numbered backreferences using the named backreference syntax in red. Now, syntax highlighting correctly indicates these backreferences in blue when a group with the specified number exists. They are still indicated in red if there is no group with that number.

PowerGREP 4.6.4 – 26 January 2015

PowerGREP 4.6.3 introduced a new bug that triggered an access violation when attempting to execute an action that includes a search and replace (either the main part of the action or extra processing) that uses “delimited literal text” as its search type. This prevented the action from being executed. This bug has now been fixed.

PowerGREP supports a wide range of archive (compressed file) formats, including the RPM format that is commonly used to package Linux applications or their source code. RPM archives normally use GZIP as their compression method. But some modern Linux distributions create RPM files that use LZMA as the compression method. PowerGREP previously only supported GZIP-compressed RPM archives. Now LZMA-compressed RPM archives are supported too.

When you save a file selection using the File Selector|Save menu item in PowerGREP, you get an XML file with a .pgf extension in which all the elements are sorted alphabetically by their “name” attributes. That’s because PowerGREP keeps the file selection sorted alphabetically in memory in order to speed up navigating the file selection. Previous versions of PowerGREP relied on this sort order when loading .pgf files. But the XML schema for .pgf files does not mandate that elements be specified in any particular order. If you had PowerGREP open a .pgf file that was created by another application or script, PowerGREP would not handle the file selection correctly if the elements were not sorted alphabetically. Now, PowerGREP will correctly load .pgf files regardless of how the XML elements in the file are ordered.

PowerGREP 4.6.3 – 17 December 2014

When searching through files in proprietary formats such as MS Office or PDF files, PowerGREP first needs to convert the file into plain text before it can search through it. Since this conversion typically takes much longer than the actual search, PowerGREP keeps a cache of converted files by default. You can configure this in the File Formats section in the Preferences. You can specify how much disk space PowerGREP can use for its cache of text conversions of files in proprietary formats.

PowerGREP uses a separate process called the conversion manager that manages the cache and allows it to be shared between all running PowerGREP instances. This speeds up both consecutive and concurrent searches through the same set of files as files in proprietary formats need to be converted only once. For maximum benefit, you should set the cache size large enough so that the conversions of all the files you’re presently working with will fit. When the cache exceeds the maximum size that you specified, PowerGREP’s conversion manager removes the cached copies of the least recently accessed files. Due to a bug, the conversion manager could hang while trimming the cache. This caused PowerGREP to show errors about being unable to connect to the conversion manager until you forcibly terminated it via the Windows task manager. This bug has now been fixed.

If you do not repeatedly search through the same set of files or do not want to allocate enough disk space to allow a complete set of files to fit, then you can disable the conversion cache by setting both cache sizes to zero. Then PowerGREP will not use its conversion manager at all.

Creating a portable install via the Help menu of a hard drive install now correctly copies the file PowerGREP4IFilter.exe. PowerGREP 4.6.0 and later need this file to be able to search through files of any that you have configured to be converted using an IFilter.

The “rename files” action type now checks whether the path produced by the replacement text is syntactically valid and show an error if it is not rather than attempting to rename the file to an obviously invalid path.

The option in the Action section in the Preferences to delete files to the Window Recycle Bin is now correctly saved. Previously it was always turned on when restarting PowerGREP. Deleting all text encoding definitions and clicking OK no longer makes the Preferences dialog inaccessible.

PowerGREP 4.6.2 – 8 September 2014

PowerGREP 4 has the ability to use the IFilter system to decode files in proprietary formats for which it does not have built-in decoders (or to replace the built-in decoders). This is the system that Microsoft designed to allow Windows Search to handle such files. It relies on DLLs that are included with 3rd party applications. Microsoft Office, for example, includes IFilters for the Office file formats. In PowerGREP 4.6.0 we improved PowerGREP’s handling of IFilter DLLs to prevent PowerGREP from crashing in case an IFilter DLL crashes. Unfortunately, while making this improvement we introduced a new bug that caused PowerGREP to be unable to handle files that were configured to use the IFilter and for which an IFilter DLL was registered in Windows if that DLL could not be loaded. Version 4.6.2 fixes this bug while retaining all the improvements made in 4.6.0. If an IFilter DLL cannot be loaded, PowerGREP will process the files that DLL is registered for without using the IFilter system, like PowerGREP 4.5.1 and prior did.

In the Text Encoding section in the preferences you can configure which character encodings PowerGREP should use to interpret plain text files. One of the options is to look for an HTML charset tag. This option is enabled by default for HTML files. Previously, PowerGREP would always use the encoding specified in the charset tag if you enabled that option. This caused problems with files that contain invalid charset tags. A charset tag that specifies UTF-16 in a file that is actually plain ASCII would appear as Chinese gibberish in PowerGREP. Now, PowerGREP compares the encoding it uses while detecting the charset tag (the default encoding you specified for the file type) with the encoding specified by the tag. If the combination is impossible, the tag is ignored. A tag written using ASCII characters is now accepted if it specifies an ASCII-compatible encoding like UTF-8 or Windows 1252, but rejected if it specifies an encoding like UTF-16 that is not an extension of ASCII.

On the Action panel, changing the search type from a list to a single item now keeps the item that was selected in the list (if it is not blank) instead of keeping the first enabled non-blank item in the list. Reverting the search type without editing the item now restores the previous list instead of creating a new list with just one item. This allows accidental changes to the search type to be undone without losing the list.

On the File Selector panel, the “include files” and “exclude files” boxes allow you to use semicolons, commas, and colons to delimit multiple file masks. Spaces around the delimiters are ignored. So *.c; *.h matches all files with a .c or .h extension, rather than requiring the .h files to have a space as the first character in their name. But spaces within the file masks should be treated as literals. x *.c;x *.h should match all .c and .h files that have an x and a space as the first two characters in their name. Previously this was working correctly only for the first file mask. Now literal spaces are handled correctly in all file masks in a list.

PowerGREP 4.6.1 – 9 June 2014

The IFilter file masks in the File Formats Preferences now include *.od[bcfgimpst] by default. This file masks matches the OpenDocument Format file extensions. With this change, a clean install of PowerGREP 4.6.1 will use the OpenOffice or LibreOffice IFilter by default if one of these office suites is installed. If you’re upgrading from an earlier PowerGREP 4.x.x release, you’ll need to make this configuration change yourself as PowerGREP does not change your settings when you upgrade it.

When PowerGREP uses an IFilter for ODF files it searches through a plain text conversion. You’ll see only the document’s text when ODF files are displayed in the search results. When PowerGREP does not use the IFilter, it searches through the raw XML code inside the ODF files. You’ll see XML tags along with your search matches in the search results.

PowerGREP can only use an IFilter for ODF files if you have one installed. OpenOffice 4.1.0 or later correctly install 32-bit and 64-bit IFilters. Earlier OpenOffice releases do not correctly install the IFilter, making it unusable by PowerGREP (or any other application). On 32-bit Windows, LibreOffice 4.2.4 correctly installs its IFilter. On 64-bit Windows, LibreOffice 4.2.4 fails to install the 64-bit Visual C++ runtime needed by its IFilter. You need to install it before PowerGREP (or any other 64-bit application) can use the LibreOffice IFilter. We have not tested earlier releases of LibreOffice.

PowerGREP’s XLS decoder has been improved. Previously it would sometimes skip entire sheets in XLS files that contain graphs and multiple sheets. If you have enabled the conversion cache in the File Formats section in the Preferences (it is by default) then you will need to clear the conversion cache folder so that PowerGREP will convert all XLS files again.

Two years ago, PowerGREP 4.3.0 improved PowerGREP’s handling of compressed file formats or archives. Unfortunately, this broke PowerGREP’s ability to search through RPM archives (a common format for distributing Linux software) and ISO images that use the UDF file system (most commonly used for disc images of DVDs). PowerGREP 4.6.1 handles these correctly once again, while keeping all improvements from previous releases. The Archive Formats Preferences allow you to configure which files PowerGREP should (try to) treat as archives.

This release also brings some performance enhancements to PowerGREP’s regex engine. Most notably, regular expressions in the form of (?<=lookbehind).* performed very poorly when the “dot matches newlines” option was off. Now they’re just as fast with “dot matches newlines” turned off as with the option turned on.

In the Syntax Colors section in the Preferences you can download user-contributed syntax coloring schemes that PowerGREP uses for syntax coloring on the Editor panel. In the Editor section in the Preferences you can download user-contributed file navigation schemes that PowerGREP uses for automatic code folding on the Editor panel. You can also use the syntax coloring scheme editor and file navigation scheme editor to create your own schemes and save them in the folder %APPDATA%\JGsoft\PowerGREP 4 under your Windows user profile. Previous PowerGREP 4.x.x releases would crash if the first (or only) syntax coloring or file navigation scheme that you downloaded or created did not define any file masks. Now PowerGREP will correctly load such schemes. You will need to customize the file masks in the Syntax Colors and Editor sections in the Preferences before PowerGREP can actually use schemes that do not specify any file masks.

See also: PowerGREP 4.6.1 version history

PowerGREP 4.6.0 – 26 November 2013

If your search includes files in proprietary formats such as PDF or Office files, then PowerGREP needs to convert those files to plain text before it can search through them. This release brings several improvements that allows this conversion to succeed for more files. PowerGREP’s built-in XLS and XLSX decoder has been improved. It now correctly converts all files that our users reported that it previously crashed on.

PowerGREP 4 has the ability to use the IFilter system to decode files in proprietary formats for which it does not have built-in decoders (or to replace the built-in decoders). This is the system that Microsoft designed to allow Windows Search to handle such files. It relies on DLLs that are included with 3rd party applications. Microsoft Office, for example, includes IFilters for the Office file formats. Previously, crashes or hangs in these DLLs would cause PowerGREP itself to crash or hang. Now, PowerGREP uses separate processes to host the IFilter DLLs. Should any of them crash or hang, PowerGREP terminates the IFilter process and adds an error message on the Results panel. It then immediately continues the search with the next file, spawning a new IFilter process if needed. If you have any of the IFilter options enabled in the Preferences and you’ve experienced PowerGREP becoming unresponsive, upgrading to 4.6.0 should resolve those issues.

The RegexBuddy item in PowerGREP’s Action menu allows you to invoke RegexBuddy to edit the regular expression(s) you’re using on the Action panel. If your action uses a list of regular expressions and you have RegexBuddy 4, then RegexBuddy will now show the entire list in its History panel, with the active regular expression selected. Portable installs of PowerGREP are now capable of invoking portable installs of RegexBuddy 4.

See also: PowerGREP 4.6.0 version history

PowerGREP 4.5.1 – 7 June 2013

When the action type is set to search-and-replace, you can set target file creation to “copy all searched files”. This tells PowerGREP to duplicate the entire set of files you’re having it search through, and make the replacements in the duplicates. Unfortunately, previous 4.x.x releases of PowerGREP have a bug that affects “copy all searched files”. If no matches were found in some files, then those files were moved instead of copied to the target folder. The Undo History could not undo this, because it recorded the copy that was supposed to have happened rather than the move that did happen. PowerGREP 4.5.1 will correctly copy all files when you select “copy all searched files”, regardless of whether any matches are found in each file.

PowerGREP’s installer has a Create Portable Installation button that allows you do install PowerGREP into any folder that you have write access to. You can use this to install a portable copy onto a USB stick, but also to install PowerGREP into a personal folder on your computer’s hard disk, even when you don’t have the necessary permissions for normal software installations on your PC. Version 4.5.1 fixes a bug in the installer that caused it to claim it couldn’t find its license key, which is stored inside the installer itself, when trying to create a portable install as a user with limited access rights.

Version 4.5.1 also fixes a bug that caused portable installs of PowerGREP to fail to search through files in proprietary formats in certain situations. The recommended workaround is to set both conversion cache sizes to zero in the File Formats section in the Preferences. Portable installs of PowerGREP 4.5.1 will correctly search through files in proprietary formats regardless of the conversion cache preferences. We do recommend that you either disable the cache by setting both cache sizes to zero, or specify a cache folder on fast hard disk or SSD. USB sticks are too slow to provide any benefit as a conversion cache. Brand new portable installations of PowerGREP 4.5.1 will have the conversion cache disabled by default, instead of using a subfolder of PowerGREP’s installation folder as the cache. Hard disk installs continue to default to using the Windows temporary files folder as a cache, as this folder is normally stored on a fast local drive.

See also: PowerGREP 4.5.1 version history

PowerGREP 4.5.0 – 20 March 2013

PowerGREP’s File Selector now automatically updates its list of drive letters when drive letters are added or removed in Windows, such as when you plug or unplug a USB stick, or map network drive. Combined with PowerGREP’s existing ability to automatically refresh changed folders as needed, this means you’ll never need to manually refresh the file selection again. But if you really want to, the Refresh command is still available in the File Selector menu.

The Results menu and toolbar offer various commands for making and reverting replacements after you have previewed or executed a search-and-replace. These commands now show a progress meter when making or reverting replacements across multiple files. The commands for making and reverting replacements in all files are now disabled for actions that produce more search matches than PowerGREP can hold in memory at a time, because PowerGREP won’t be able to make or revert the replacements that didn’t fit into memory. This can happen when millions of replacements need to be made on computers with limited amounts of RAM. Disabling the commands makes sure you don’t mistakenly think that all replacements were made or reverted. The commands for reverting or replacing selected matches or all matches in selected files will still be available to work on those matches that did fit into memory. And the Undo History will always allow you to revert all changes that an action made, even when using the Quick Replace button that does not keep the details of any search matches.

On the Results panel, you can set 10 numbered bookmarks that allow you to quickly jump back to a particular file or match in the search results. You can now remove bookmarks by setting the same bookmark at the same position. Setting a different bookmark at the same position now sets that bookmark and removes the old bookmark, instead of leaving the old bookmark at that position along with the new bookmark. Remember that bookmarks are linked to items such as search matches rather than to lines. If two matches are shown on the same line, you can have two bookmarks on the same line, even though the margin will show only one of them. To remove a bookmark, the cursor needs to be on the same item in the search results, not just on the same line.

If you export the search results into an HTML file via the Results|Export menu item or via the command line, then the exported HTML now includes a Content-Type meta tag to indicate the character set you selected. If you do so via the command line and specify an empty string “” as the encoding, then PowerGREP will now export the HTML using your computer’s default code page instead of crashing.

The best way to get technical support for PowerGREP is via its built-in forum. You can access it by selecting View|Forum in the menu in PowerGREP and then clicking the Login button. Previously, PowerGREP could connect to the Internet (and to the forum) if your PC had a direct internet connection or if it could connect through an HTTP proxy that either required no authentication or allowed basic authentication. You can configure the proxy server via the Proxy button on the login screen to the forum. Now PowerGREP supports additional authentication methods for HTTP proxies. It will automatically negotiate a supported authentication method with the proxy server, so there’s no need to select the authentication method when you configure your HTTP proxy in PowerGREP. PowerGREP can now also connect to the Internet via proxy servers using versions 4, 4A, or 5 of the SOCKS protocol. You’ll need to select the correct version when configuring your SOCKS proxy in PowerGREP. If your SOCKS proxy needs a password, then it will be running SOCKS version 5.

When searching through files in proprietary formats such as MS Office or PDF files, PowerGREP first needs to convert the file into plain text before it can search through it. Since this conversion typically takes much longer than the actual search, PowerGREP keeps a cache of converted files. You can configure this in the File Formats section in the Preferences. It is possible for this conversion to fail because another application has a lock on the file, preventing PowerGREP from opening it. A typical case is a spreadsheet still being open in Excel. Previously, such errors were reported as complete conversion failures or crashes, and recorded as such in the cache. Subsequent attempts to search through those files would fail immediately saying a previous attempt to convert the file had failed. Now, PowerGREP treats the inability to open a file as a special case. The search results will report an error saying the file could not be opened. The error will not be recorded by the cache, so subsequent attempts to search through those files will succeed if the lock on them was released. Other conversion errors continue to be recorded in the cache, so PowerGREP doesn’t repeatedly try to convert a file that it cannot decode. This improvement does not automatically clear out errors previously stored by the cache. You can manually clear the cache by deleting the cache folder specified in the File Formats section in the Preferences while PowerGREP is not running.

In the File Formats section in the Preferences, you can specify how much disk space PowerGREP can use for its cache of text conversions of files in proprietary formats. You can specify one size for when PowerGREP is running, and optionally a smaller size for when PowerGREP is not running. If you specify the smaller size, the cache will be trimmed when you close the last PowerGREP instance that actually used the cache. Previously, there were circumstances in which PowerGREP would trim the cache as soon as it completed a search, defeating the purpose of specifying a larger cache size for when PowerGREP is running.

While PowerGREP is only officially supported on Windows 2000 and later, you can run it on Linux using WINE. On 64-bit Linux, you’ll need to run PowerGREP’s installer with the /32 command line parameter to force it to install the 32-bit version. The 64-bit version of WINE has bugs or omissions that cause the 64-bit version of PowerGREP to crash. WINE’s implementation of the TreeView common control differs slightly from that in Windows. This caused access violation errors in PowerGREP when using the files and folders tree on the File Selector panel. PowerGREP now includes a workaround for this incompatibility between WINE and Windows.

See also: PowerGREP 4.5.0 version history

PowerGREP 4.4.0 – 1 November 2012

PowerGREP is now fully compatible with Windows 8. We only had to fix a few minor issues in the installer, and one issue in PowerGREP itself that caused drop-down lists on toolbars to display their drop-down arrows incorrectly.

Two new match placeholders are now supported on the Action panel. %FILEN% works everywhere. It is a number that is incremented for each file searched through, allowing unique sequential IDs to be generated for each file. The placeholder counts all files that are searched through, including those without matches. Files are numbered in no particular order if the Action Preferences are set to process files in multiple threads. Files are numbered in alphabetical order if the Action Preferences are set to use only a single thread. %FILEN% starts counting at one, and %FILENZ% at zero.

%GUID% can be used in the replacement text of the main action and extra processing. It inserts a newly generated GUID in the form of {067F8296-9D1F-4CF2-87E0-70EFC4CE41BF}. Each replacement will get a different GUID. This placeholder can be very useful if you’ve cloned a bunch of files that contain GUIDs, and the cloned files should get new GUIDs. You can use the regex {[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}} to match an existing GUID. Make sure to turn off the “case sensitive” option.

The File Selector now remembers the Search Archives option when you restart PowerGREP, even if you turn off the option to remember the file selection in the File Selector section in the Preferences.

A bunch of minor bugs were also fixed. The version history has the complete list.

See also: PowerGREP 4.4.0 version history

PowerGREP 4.3.3 – 30 April 2012

This release fixes another two bugs we missed in previous 4.3.x releases. Actions that wrote search matches from multiple files to the same target file such as “merge files” actions failed with a “stream read error”. Renaming files in archives failed with an “incorrect function error” (4.3.x only). This broke “rename files” actions as well as actions that modified files inside archives and stored backup copies inside the same archives.

An older bug was also fixed. Renaming a file in an archive to a name already used by another file in the archive now removes the other file from the archive rather than resulting in two files with the same name in the archive. This makes renaming files in archives consistent with renaming files that are not in archives.

See also: PowerGREP 4.3.3 version history

PowerGREP 4.3.2 – 5 April 2012

This release fixes two bugs we missed in versions 4.3.0 and 4.3.1. Files inside compressed archives that are too large to fit into RAM were skipped with an error saying PowerGREP could not decompress them. Running the installer with the /silent command line parameter did not install the license key, causing PowerGREP to ask for it when first run.

See also: PowerGREP 4.3.2 version history

PowerGREP 4.3.1 – 24 February 2012

This release fixes a few issues that we missed in last week’s 4.3.0. The new 64-bit version of PowerGREP allows you to set a larger memory usage limit for the search results in the Results section in the Preferences, depending on how much RAM your PC has. If this was set between 2048 MB and 4095 MB in version 4.3.0, then it claimed to run out of memory when finding the first search match. Version 4.3.1 correctly tracks the memory usage of the search results, even beyond 2 GB or 4 GB.

Also introduced in version 4.3.0 was the ability to specify how much memory may be used for temporary files. Version 4.3.0 did correctly track the memory usage of temporary files, including limits beyond 2 GB or 4 GB. But it did not add the file’s extension to the name of the temporary file used to open a compressed file in an external editor, as PowerGREP had been doing since version 4.2.2 so that editors that look at the file extension see the proper extension.

Handling of certain files in proprietary formats was improved. PowerGREP now adds an error to the results when it skips password-protected .docx and .pptx files, as it already did for .xlsx files. Earlier versions had a bug that caused PowerGREP to occasionally incorrectly handle files that were converted with an IFilter, such as Word documents. This caused inconsistent search results when repeatedly searching through the same set of files as PowerGREP would fail to find matches in some of the files, but not always the same files.

See also: PowerGREP 4.3.1 version history

PowerGREP 4.3.0 – 16 February 2012

PowerGREP’s installer now includes both 32-bit and 64-bit versions of PowerGREP. It will automatically install the correct version depending on whether you’re running a 32-bit or 64-bit version of Windows. Because this is a free minor update, the installer will automatically use the same installation folder. If you previously installed a previous version of PowerGREP under c:\Program Files (x86)\ on 64-bit Windows, then the PowerGREP 4.3.0 installer will install the 64-bit version into the same folder under c:\Program Files (x86)\. Though this folder is normally used for 32-bit applications, there is absolutely no problem with installing 64-bit software into it. You can change the installation folder via Advanced Options Installation, but that will break any shortcuts and file associations you created with PowerGREP. For new installations on 64-bit Windows, the installer will default to c:\Program Files\.

The native 64-bit version of PowerGREP has two main benefits. PowerGREP can now use the IFilter system on 64-bit Windows. This system allows PowerGREP to decode files in certain proprietary file formats for which PowerGREP does not have a built-in decoder, such as the .docx, .xlsx, and .pptx files created by Office 2007 and Office 2010. With the Preferences set to their defaults, PowerGREP will automatically start using 64-bit IFilters when you upgrade to version 4.3.0.

The other main benefit is that the 64-bit version of PowerGREP can use all of your PC’s available RAM. If your PC has more than 4 GB of RAM, you’ll be able to set a higher limit on the amount of memory that PowerGREP is allowed to use for search results in the Results section in the Preferences. Because PowerGREP may now have much more RAM available, version 4.3.0 has a completely reworked system for dealing with temporary files. Previous versions would use hard disk to store all temporary files. Now, you can specify in the Action section in the Preferences how much RAM each PowerGREP instance is allowed to use for temporary files. PowerGREP will not write temporary files to disk until the amount of RAM you’ve allotted has been filled up. Using RAM for temporary files is much faster than using disk space. Actions that use lots of temporary files, such as searching through compressed files or multi-step search-and-replace actions, will get a performance boost.

PowerGREP now supports additional types of compressed archives. PowerGREP can now read and write ZIPX archives using the PPMd and LZMA compression methods used by the latest version of WinZip. PowerGREP will read ZIP and ZIPX archives using the Deflate, PPMd, and LZMA compression methods. PowerGREP will use the Deflate method when creating ZIP files, and the PPMd method when creating ZIPX files. The extensions for the ZIP and ZIPX formats can be configured separately in the preferences. PowerGREP can also read and write files (*.xz) and tarballs (*.tar.xz or *.txz) compressed with XZ, a single-file compression format that uses the LZMA algorithm. PowerGREP can now also read, but not write, disk images of FAT volumes such as floppy disks. Though PowerGREP could previously read and write *.tar.bz2 and *.tar.gz tarballs, these were incorrectly treated as single compressed files instead of as compressed tar archives when the *.bz2 and *.gz extensions were specified for the single compressed BZip2 and GZip formats (as they are by default). Version 4.3.0 correctly identifies *.tar.bz2 and *.tar.gz tarballs.

Handling of compressed files was further improved. Aborting an action while PowerGREP is decompressing or compressing a large archive now aborts the (de)compression operation cleanly and immediately, instead of killing the thread after a 10-second countdown. If the files you’re searching through inside an archive do not all fit into RAM when decompressed, and the archive’s format does not use solid archives, then PowerGREP will now unzip the files one by one as it searches through them (as PowerGREP 3 always did), instead of decompressing all the files at once before searching through any file in that archive (as previous releases of PowerGREP 4 did). If the archive format uses solid archives (such as 7z or rar) and/or all the files PowerGREP needs to decompress fit into RAM, PowerGREP 4.3.0 will still decompress all the files it needs to before searching through any file in an archive. This uses more memory, but is faster because PowerGREP doesn’t have to repeatedly access the same archive. PowerGREP’s Undo Manager now closes archives as soon as it can while checking the status of files in the Undo History. This way the Undo Manager no longer prevents archives that were created or modified by an action in the Undo History from being deleted or modified again even if you don’t undo that action first.

The mechanism for docking side panels has changed. Previously panels were docked by dragging their caption bar or tab and then dragging them to the edge of another panel or PowerGREP itself. This was cumbersome because the edge area that the mouse needed to be dragged to was invisible. Starting with version 4.3.0, when you drag a panel by its caption bar or tab, squares will appear next to the 4 edges of PowerGREP’s window. Moving the mouse to one of those squares while dragging a panel docks it to the edge of PowerGREP’s window. While dragging over another panel, 5 squares appear in the middle of the panel. Moving the mouse to the center square docks the dragged panel into a tab container with the panel you’re dropping it onto. Moving the mouse to one of the 4 outer squares docks the panel side by side with the other panel.

A bunch of bugs were also fixed. The version history has the full list. Of note are that PowerGREP failed to terminate the XLS converter process after certain crashes in the converter, showing an access violation error on the Results panel, and causing errors saying “cannot send file to the converter process” on the following XLS and XLSX files. The /save command line parameter failed to save the results unless the file had a .pgr or .pgsr extension. The File Selector correctly indicated that marking a folder with a red X and marking a folder inside that folder with a green tick should search through the folder with the green tick, but the actual search did not always go down folders marked with a red X.

See also: PowerGREP 4.3.0 version history

PowerGREP 4.2.4 – 17 October 2011

This release fixes a serious bug that under certain circumstances caused PowerGREP to lock up while updating the display of a large set of search results.

The XLS decoder was also improved, allowing PowerGREP to search through Excel files that it previously failed to read.

See also: PowerGREP 4.2.4 version history

PowerGREP 4.2.3 – 26 August 2011

PowerGREP 4.2.2 did not display itself correctly in certain situations, such as when running it via a remote desktop connection. It failed to clear the background of its panels, causing the display to look garbled. This has been fixed.

The behavior of several command line parameters was improved to more closely match the behavior of PowerGREP’s graphical user interface. When you open a .pgf file (PowerGREP file selection) or .pga file (PowerGREP action), if any files or folders marked in the file selection in that .pgf or .pga file no longer exist, they are still marked in the File Selector panel. A recycle bin icon indicates the files no longer exist. The /file, /fileexclude, /folder, /folderrecurse, and /folderexclude command line parameters now do the same, instead of ignoring files and folders that do not exist.

When you change the “action type” on the Action panel, the “target file creation” drop-down list is automatically changed to prevent you from choosing a “target file creation” setting that is not available for the chosen “action type”. The command line parameters to change the action type and target settings now do the same.

PowerGREP 4.0.0 brought full support for right-to-left and bidirectional text. Version 4.2.3 improves on this to make PowerGREP’s behavior more like that of Notepad and other Windows applications. If any of the installed keyboard layouts is for a right-to-left language, then you can switch to a left-to-right text layout by holding down either Ctrl key while pressing and releasing the left hand Shift key. You can switch to a right-to-left text layout by holding down either Ctrl key while pressing and releasing the right hand Shift key. The text layouts are switched in the same way as the Right-to-Left item in the context menu of PowerGREP’s edit boxes does. This menu item is still available.

You can choose the shape of the text cursor as part of the text layout configuration that you can access via the Font and Text Direction item in the context menu of PowerGREP’s edit boxes. Previously, there was one cursor shape that uses a “flag” to indicate the direction of the text that the cursor was at. This kind of flag is still available as an option called “flag indicating text direction”. This allows you to distinguish between cursor positions that would otherwise be ambiguous. E.g. if you type the English “a” followed by the Hebrew “ש” then you’ll get “aש”. If you now click between the two characters to put the cursor between the two, they the cursor might be placed after the “a” or after “ש”. If the flag points to the right, it indicates left-to-right text, meaning newly typed text will be inserted after the “a”. If the flag points to the left, it indicates right-to-left text, meaning newly typed text will be inserted after the “ש”. Essentially, the “flag indicating text direction” option indicates the direction of previously typed text. Starting with version 4.2.3, the default bidirectional cursor gives the flag a different meaning. In the cursor customization, this option is called “flag indicating keyboard direction”. Just like the standard Windows text cursor in Notepad and many other applications, it indicates whether the currently selected keyboard layout is for a left-to-right language or a right-to-left language. Essentially, the “flag indicating keyboard direction” indicates the direction of new text you’re about to type.

See also: PowerGREP 4.2.3 version history

PowerGREP 4.2.2 – 20 July 2011

Two new command line parameters were added. Use /file and /fileexclude to mark individual files to be included in or excluded from the action. You can use these parameters on their own, or together with the existing /folder, /folderrecurse, and /folderexclude parameters, to create file selections from the command line in the same way that you can create them using the tick and X buttons on the File Selector panel.

The Edit with EditPad command in the Edit submenu in the File Selector and Results menus now works with EditPad Lite 7 and EditPad Pro 7. PowerGREP still supports EditPad Pro 4, 5, and 6, but gives preference to version 7 if you run more than one version. Right-clicking in the results but not on a highlighted match and selecting Edit with EditPad Pro should select the line or block of context in EditPad just like it does with the built-in editor when double-clicking.

The File Selector and Results menus have commands to copy, move, and delete the files that you selected or the files that were involved in the action you last executed. New in version 4.2.2 is that these commands remember the settings you used with them in previous PowerGREP sessions.

The File Selector now ignores unquoted spaces before and after each file mask in the Include Files and Exclude Files boxes, instead of requiring file names to begin or end with a space. Spaces in the middle of file masks are still treated as literal spaces. If you want a file mask to begin or end with a space, put double quotes around it.

Since version 4.1.3 PowerGREP has been using separate processes to convert PDF and XLS files. This prevents PowerGREP from crashing or locking up if the converter crashes or locks up. If the converter process becomes unresponsive, PowerGREP simply kills it and moves on to the next file. Version 4.2.2 now waits longer before timing out the conversion. This allows larger files to be converted. The Create Portable Installation item in the Help menu now also copies over the PDF and XLS converters. The XLS decoder has also been updated to allow it to convert some files that it previously crashed on.

Several issues were fixed in dealing with compressed files. Opening a compressed file in an external editor now adds the file’s extension to the name of the temporary file that it is decompressed to so that editors that look at the file extension see the proper extension. Search-and-replace actions that modify original files and create backup files no longer fail on zipped documents with an error about being unable to create the backup. .gz files that consist of multiple concatenated .gz files are now correctly decompressed as a single file like gunzip does rather than failing with a CRC error.

Performance has been greatly increased when loading an action that uses a very long delimited list of literal text when the search type was set to regular expression before loading the action. Performance has also been greatly increased when updating results after running an action or loading a .pgr file when those results contain tens of thousands of files that need to be sorted. Previous versions of PowerGREP may have appeared to lock up in these situations, depending on how much data and how much patience you had. Version 4.2.2 should no longer try anybody’s patience in these situations.

A rare hard lockup bug was also fixed. The undo manager locked up when PowerGREP added an undoable action that modified files on a drive that could not be monitored for directory changes. This tends to happen with virtual drives that don’t implement the full Windows file system APIs. This caused PowerGREP itself to also lock up until the undo manager was killed via the task manager.

See also: PowerGREP 4.2.2 version history

PowerGREP 4.2.1 – 25 February 2011

PowerGREP 4.2.1 brings one new feature and a bunch of minor bug fixes and improvements.

PowerGREP’s built-in text editor was already capable of highlighting matching brackets by using syntax coloring schemes. These can be configured in the Syntax Colors section in the Preferences. New in version 4.2.1 are three keyboard shortcuts for editing text based on bracket matching. When matching brackets are highlighted, press Ctrl+] to move the cursor to the other bracket. Press Ctrl+[ to select the text between the innermost pair of brackets. Repeat Ctrl+[ to expand the selection to include the brackets, and again to expand it to the next pair of brackets. When an unmatched bracket is highlighted, press Ctrl+Shift+] to insert the matching bracket.

On the Action panel, the edit box for headers and footers in collected files now has a right-click menu. A regular expression that consists of nothing but a comment is now ignored instead of causing errors when it is included in a list of regular expressions. The (...) button for the target location now works when the target type is set to “path placeholders”. The mode modifiers (?i) and (?-i) to turn case insensitivity on or off now work correctly with regular expressions that consist of nothing but literal text. PowerGREP optimizes such regular expressions into plain text searches. Using the “line by line” sectioning and “invert search results” no longer causes an access violation when used with the “simple search” action type.

When you select text in any of PowerGREP’s multi-line edit controls and copy it to the clipboard, PowerGREP 4 copies the text as both plain text and rich text. This preserves any syntax coloring or match highlighting the text has in PowerGREP when you paste it into a word processor or any other application that supports rich text. Version 4.2.1 fixes an issue with the rich text copied by PowerGREP that prevented it from being pasted into Outlook Express (and possibly other applications that are very strict about the RTF they accept). Version 4.2.1 no longer puts RTF on the clipboard when copying more than 1 MB of text.

Several issues with text encodings were also fixed. PowerGREP supports Unicode as well as many legacy code pages and other text encodings. You can configure them in the Text Encoding section in the Preferences. The “ASCII + NCR” encoding no longer leaves the numeric character references untranslated in some situations. The “ASCII + &htmlchar;” encoding now correctly inserts and replaces non-ASCII characters in target files. These two encodings allow pure ASCII HTML and XML files that contain HTML or XML entities to represent non-ASCII characters to be displayed with the actual characters rather than the entities. The VIQR encoding for plain ASCII Vietnamese files no longer crashes if the file contained bytes >= 126. A proper VIQR file never contains such bytes. If “detect HTML charset meta tag” was on and the file does not actually contain a meta tag, PowerGREP no longer detects UTF-8 and UTF-16 files without a BOM or ASCII files using Unicode escapes when those two options are turned off.

See also: PowerGREP 4.2.1 version history

PowerGREP 4.2.0 – 12 January 2011

PowerGREP’s installer no longer includes a second copy of the documentation as a printable PDF file. Only the CHM file that provides context-sensitive help is still included with PowerGREP itself. The PDF file is now available as a separate download.

On the Action panel, the “action type” list has a new “file name search” choice. This action type makes it easier to search through file names rather than their contents. Normally, the search terms you enter on the Action panel are used to search through the contents of files. With the “file name search” and “rename files” action types, they search through file names instead. The old method of using the “include files” and “exclude files” boxes on the File Selector panel is still available for when you want to search through file names as well as their contents using any of the other action types.

Several new command line parameters were added. Use /folderexclude to mark folders to be excluded from the action. This new parameter complements the existing /folder and /folderrecurse parameters. Also new are the /searchtextfile and /searchbytesfile parameters. With these you can load a search term or a delimited list of search terms from a file. This allows you to replace grep -f commands in scripts with PowerGREP.

If the target file settings on the Action panel produce target file names with a .gz or .bz2 extension then PowerGREP automatically compresses the target file. If you are searching through a bunch of files, some of which are compressed and some of which aren’t, and you’ve told PowerGREP to save one target file for each file searched through with the same name as the original, then PowerGREP will compress the targets that correspond with the files that were originally compressed. If you want to all your target files to be uncompressed, you can use the new %FILENAMENOGZ% path placeholder. This placeholder is the same as %FILENAMENOEXT% if the file has a .gz or .bz2 extension, or the same as %FILENAME% if it does not have such an extension. For example, the path c:\output\%FILENAMENOEXT% saves all the target files into c:\output, making sure none of them are compressed. On the other hand, the path c:\output\%FILENAMENOEXT%.bz2 makes sure all files are compressed with BZip2.

Previously, PowerGREP ignored the read-only attribute on files. If a file had the read-only attribute set and the action was not configured to create backup copies, then PowerGREP silently failed to overwrite that file. If the action did create backup copies, then the backup would be made and the file overwritten. Now, PowerGREP checks for the read-only attribute. If it is set, PowerGREP reports that as an error on the Results panel. The file is not overwritten. In the Action section in the Preferences there is a new option to make PowerGREP overwrite read-only files. With this option enabled, PowerGREP clears the read-only attribute before overwriting files, and sets it back if it was originally set. The option only applies to read-only attributes. It does not allow you to bypass any of your computer’s or network’s security settings. PowerGREP can only clear the read-only attribute if you have the necessary security privileges to do so.

When multiple steps in a sequence overwrite the same file, PowerGREP now creates only one backup copy of the file. If one step in the sequence creates a file and later steps overwrite the file, no backups are created. This makes sure no needless backup copies are created. The Undo History can still undo everything that was done by the sequence, as long as each step is configured to create backups. It also makes sure that everything can be undone with using a “single” naming style for backups.

If you find yourself moving toolbars accidentially, select the new Lock Toolbars item in the View menu. When this option is enabled, you cannot move the toolbars with the mouse.

Highlighting of backreferences in regular expressions and replacement texts on the Action panel has been improved. The highlighting now takes into account that named capturing groups can carry over between subsequent parts of the action. For example, if the regex for “filter files” defines a named capturing group and the regex for the main part of the action uses a backreferences to that capturing group, then the backreference is now highlighted in blue to indicate it is valid. Backreferences in replacement texts now also use blue highlighting for valid references and red highlighting for invalid references, just like backreferences in regular expressions.

Various bugs were fixed. Action date, file date, and file size placeholder values are no longer off by one. Grouping unique matches no longer fails to group all the occurrences of the first match that was found. The history menu for the filter files part of the action now works. Literal text searches using placeholders in the search term now work correctly when the search is not case sensitive. Placeholders now work when used in regular expressions. Renaming files now works correctly even when the only change is to the file name’s capitalization. Splitting files using a regular expression now correctly splits binary files. The /save command line parameter now correctly saves results of entire sequences. Compound file formats like CHM files can now be excluded using the Exclude Files file masks. Printing results now prints the last line too.

See also: PowerGREP 4.2.0 version history

PowerGREP 4.1.3 – 23 September 2010

The headline improvement in this release is that PowerGREP now uses a separate process for decoding XLS files. This shields PowerGREP from crashes in the XLS decoder. XLS files that previously caused PowerGREP to crash now cause it to add an error message for those file to the bottom of the Results panel while continuing to search through the remaining files. The crashed XLS converter process is cleaned up completely by Windows itself, so no memory is leaked. PowerGREP simply spawns a new process for the next XLS file it needs to convert.

PowerGREP 4.1.3 also uses separate processes to decode PDF files. This allows PowerGREP to decode more than one PDF file simultaneously if you have configured PowerGREP to use more than one thread in the Action section in the Preferences.

On Windows 7, PowerGREP’s taskbar button now shows a progress meter while a search is running. This allows you to keep an eye on its progress even if you have PowerGREP minimized during a long search.

The Export item in the Results menu now supports the Rich Text Format. If you specify a file name with the .rtf extension, the results are exported as a rich text file that will show the same highlighting as in PowerGREP when you open it in Wordpad or another word processor.

Using double quotes to keep file names with commas and semicolons together now works in PowerGREP 4 as it did in PowerGREP 3. Updating match results now works when the action is paused. Selecting “no backups” as the backup type in the Editor section in the Preferences no longer causes the Editor, Save (As) menu items to fail to overwrite files.

PowerGREP no longer becomes unresponsive for extended periods of time while executing actions that require identical matches to be grouped and grouping the matches found in a file takes longer than finding the matches in a file. This can happen when there is a large number of unique matches in the overall search but only a small number of matches in each file. PowerGREP 4.1.2 (this version only) sometimes crashed while building the results. This bug has been fixed.

See also: PowerGREP 4.1.3 version history

PowerGREP 4.1.2 – 12 August 2010

This release brings a bunch of bug fixes and improvements.

PowerGREP is now capable of searching through Excel 2007 and 2010 files (XLSX format) in the same way as files from older Excel versions (XLS format). Both formats are now converted into a textual representation that is similar to what Excel displays. This textual conversion is what PowerGREP searches through and what it shows in the results and built-in editor. If you want to search through the raw XML inside XLSX files like previous versions of PowerGREP did, select that option in the File Formats section in the Preferences.

Windows Vista and Windows 7 use a different method for supporting high resolution displays. PowerGREP now fully supports this, making PowerGREP look good when you increase the font size by more than 125% in the display settings in Windows Vista or 7.

When you click the Abort button to abort an action, the progress bar on the Results panel now counts down 10 seconds. If the action does not abort gracefully within 10 seconds, PowerGREP will forcibly terminate it. This allows you to close PowerGREP normally or start a new search if PowerGREP got stuck on certain files for any reason.

Several features on the Action panel that did not work correctly have been fixed. Action: Filtering out files did not work in version 4.1.1, causing all files to be searched. Displaying extra context after matches did not work when using sections as context. Changing the search type between “delimited” and “list” caused an internal inconsistency in the action definition which sometimes caused errors when attempting to save or execute the action.

Importing file listings now correctly handles UNC paths with spaces in the server or share name. Turning on Search Only through Files with Results in the File Selector menu now works correctly. Making replacements using backreferences via the Search toolbar on the Editor panel now works correctly.

See also: PowerGREP 4.1.2 version history

PowerGREP 4.1.1 – 8 July 2010

This release brings a bunch of bug fixes and minor improvements.

Under PowerGREP Examples in the table of contents of PowerGREP’s help file you can find several new topics that demonstrate some of the new features in PowerGREP 4:

Several features on the Action panel that did not work correctly have been fixed. Listing only sections matching all search terms now works correctly. Group placeholders that specify placeholder options such as %GROUP1:L% now work correctly when used in “extra processing”. Creating target files using path placeholders no longer fails for the second and following files if their target folders do not yet exist. Collecting search matches into target files with “group identical matches” turned on no longer results in a double BOM being written if the target file is a Unicode file configured to have a BOM. Collecting search matches into a single target file now works correctly when setting “order of collected matches” to sort the files in a particular way.

The Path box on the File Selector panel no longer ignores UNC paths with spaces in the server or share name. Including or excluding files now works correctly when using more than one traditional file mask and a file mask containing a backslash is listed before another file mask not containing a backslash.

When using the /silent command line parameter to execute an action that is set to not create backup copies when overwriting files PowerGREP 4.1.0 crashed after completing the action unless the /noundo parameter was also used. Now /noundo is implied when the action does not create backups.

Storing the results of a search-and-replace or search-and-delete action was much too slow when collecting context, making it almost impossible to run search-and-replace actions that make hundreds of thousands of replacements in a single file other than using the Quick Replace button. Though collecting context will always be slower than not collecting context, PowerGREP 4.1.1 is now more than fast enough to make it practical to preview a search-and-replace with context, even if it makes 100,000 replacements in a single file.

You can use the new /nocache command line parameter in combination with the /silent parameter to disable the conversion cache when executing actions silently. Files in proprietary will be converted even if they were cached before. The conversions will not be added to the cache. The conversion manager will not be used at all. Use this option if the action you’re executing silently searches through files that you normally don’t search through. That way PowerGREP doesn’t needlessly take up disk space to cache the plain text conversions of these files. It also prevents PowerGREP from flushing files that you do regularly work with from the cache when the cache reaches its maximum size. Using /nocache and /silent, PowerGREP does not use its conversion manager at all.

Setting both conversion cache sizes in the File Formats section in the Preferences to zero now completely disables the PowerGREP conversion manager. If the conversion manager is already running, close all PowerGREP instances and restart PowerGREP after changing the cache sizes to zero. Set the conversion cache sizes to zero if you never search through the same set of files twice, or if the combined size of the files in proprietary formats in your search is larger than the amount of disk space you want to allocate to PowerGREP’s conversion cache. In those situations you don’t benefit from the cache. If you do search through the same set of files (in proprietary formats) repeatedly, setting a large enough significantly speeds up the second and following searches.

Also new in version 4 is the ability to use the IFilter system to decode files in proprietary formats for which PowerGREP does not have built-in decoders (or to replace the built-in decoders). This is the system that Microsoft designed to allow Windows Search to handle such files. Unfortunately, this system has some limitations that we previously did not anticipate. Some IFilters, such as those for Office 2007 files, do not work correctly unless invoked from PowerGREP’s main thread. The effect was that the Open item in the Editor menu could open Office 2007 files, but PowerGREP actions failed to process them, skipping them as if they were binary files that cannot be decoded. Now PowerGREP invokes all IFilters from its main thread only. This allows all IFilters to work correctly, regardless of any threading limitations they may have. The downside is that PowerGREP’s user interface will be less responsive while searching through files that need to be decoded using an IFilter. Such searches will also be slower as it prevents PowerGREP from fully exploiting the power of multi-core processors.

The default IFilter settings in the File Formats section in the Preferences have been changed. “Decode binary files using IFilter” is turned on by default, and “Transform plain text files using IFilter” is turned off. “Only use IFilter for files matching these file masks” is set to *.ppt. For the “Microsoft Word” file format, “Use IFilter, if available, instead of PowerGREP’s built-in decoder” is turned on. It is turned off for all other file formats. In the Archive Formats section, “use IFilter to decode the compound document into plain text” is turned on for the “zipped documents” compressed file format.

The result of these new defaults is that PowerGREP will use the IFilter only for .doc, .ppt, *.docx, *.xlsx, *.pptx and the OpenOffice file formats. With these settings PowerGREP won’t automatically attempt to use the IFilter for all binary files as the 4.0.x releases did. If you’re upgrading from a previous PowerGREP 4.x.x release, version 4.1.1 will use your existing settings. The defaults are only used by new installations. We recommend you change your settings to match the new defaults. If you want to use the IFilter for other file formats, simply add them to “only use IFilter for files matching these file masks”.

PowerGREP is now more conservative with memory when searching through very large plain text files. Previously this was based on available memory. Now there is a fixed 50 MB limit per file. This makes sure PowerGREP doesn’t run out of memory when multiple threads open multiple very large files at the exact same time. Using the Preview or Rename buttons to run a “rename files” action no longer leaks 64K of memory for each file that needs to be renamed. The Quick Rename button did not have this bug.

See also: PowerGREP 4.1.1 version history

PowerGREP 4.1.0 – 14 May 2010

This release brings several new features and enhancements.

A number of command line parameters were added. Previously, context could only be set from the command line by loading a .pga file. Now the most common context options have direct command line parameters. You can use /context followed by none, context or line to set the “context type” to “no context”, “use sections as context”, or “use lines as context”. When using any option other than none, you can use /contextextra lines 2 3 to have two lines of extra context before and three lines after each match. Both numbers must be specified. Set them to zero if you do not want context before or after.

The /reuse parameter tells PowerGREP to reuse a previous PowerGREP instance, if there is one, and if it isn’t busy executing an action or sequence. You can add this parameters to shortcuts for launching PowerGREP if you want to avoid unnecessarily starting new instances. If there are no running PowerGREP instances or they’re all busy executing something then the /reuse parameter is ignored and a new instance is started.

PowerGREP 4.0.0 introduced the /silent parameter to execute PowerGREP actions without showing PowerGREP’s user interface. Version 4.1.0 adds the /noundo and /noundomanager parameters. These can only be used in combination with /silent. The /noundo parameter tells PowerGREP not to save any undo information for the action, even when the action creates backup files. You should only use this parameter if you know for sure you won’t need PowerGREP’s undo history feature to clean up the backup files or undo the action. The /noundomanager parameter should be followed by the full path of a .pgu file. PowerGREP will save the undo history for the action directly to that file, without using the undo manager. If the file does not exist it is created. Normally PowerGREP uses the undo manager to allow multiple PowerGREP instances to share a single undo history. When bypassing the undo manager you must make sure only one PowerGREP instance uses the same .pgu file at any time.

When using the /silent parameter PowerGREP no longer adds the action to the undo history if the action is set to not create backup copies when overwriting files. Previously, all actions that create or overwrite files were added.

Actions that search through files in an archive and modified some of the files searched through now correctly update the archive. In previous 4.0.x releases the files that were modified were stored correctly in the archive but the files that were searched without modification were damaged.

In the Editor section in the Preferences there’s a new option to allow the Next Match and Previous Match items in the Editor menu to advance to the next or previous file when there are no more matches in the current file. The order the files have on the Results panel determines which files are the next and previous files. The Next File and Previous File items in the Editor menu now correctly use the order from the Results panel too.

Many edit boxes in PowerGREP provide highlighting for syntax (Editor panel), matches (Editor and Results panels), and regular expressions (Action panel). When you copy text to the clipboard, PowerGREP now includes a rich text clipboard format that includes the highlighting. If you paste into an application that supports RTF such as WordPad or MS Word, the highlighting is preserved. The RTF is only generated when an application requests it. There’s no speed penalty for pasting into Notepad or EditPad which ignore the RTF.

The default permanent exclusion mask is now the regular expression \.bak\d*$;\.~[^.]*$;^Backup [0-9]+ of;^Working copy of which better matches the names of backup files created by PowerGREP. A file or folder simply called “backup” is no longer excluded by default. The default is only applied on new PowerGREP installs. If you’re upgrading from PowerGREP 4.0.x you can change this setting in the File Selector section of the Preferences. Paste in the regular expression and tick the box to indicate that it is a regular expression rather than a classic file mask.

In PowerGREP 3 the Results panel had a hard limit of 100,000 search matches. If an action involved more search matches, all matches were still processed and counted, but only the first 100,000 were shown in the results. In PowerGREP 4.0.0 the hard limit was replaced with a dynamic limit based on estimated memory usage. You can configure the memory limit in the Results section in the Preferences. PowerGREP 4.0.x only checked memory usage after completing the search through each file. If a search included a file that produced tens of millions of matches, PowerGREP would run out of memory. PowerGREP 4.1.0 also monitors memory usage at regular intervals while it is busy on a file. If the memory limit is exceeded while processing a particular file, it continues processing the file, but does not display any of the file’s matches on the Results panel for that file and all following files. And should PowerGREP 4.1.0 unexpectedly run out of memory anyway, then the Results panel will display a detailed message including the suggestion to use the Quick Execute command to run the action without keeping information about individual search matches.

A few keyboard shortcuts were fixed. The F3 key combinations for the search toolbars on the Results and Editor panels did not work correctly or at all depending on which part of PowerGREP had keyboard focus. The shortcut for the Redo command was changed to Ctrl+Y to be more in line with other Windows applications. The old Ctrl+R shortcut still works.

Under PowerGREP Examples in the table of contents of PowerGREP’s help file you can find several new topics that demonstrate some of the new features in PowerGREP 4:

A bunch of bugs were fixed too. The search histories that you can access via the black triangles next to Search labels on the Action panel now persist when you close and restart PowerGREP, as they used to in PowerGREP 3. The “copy all searched files” target type now works correctly on files that have no search matches. PowerGREP now correctly reads gzip archives that include the name of the original file. The File Selector panel now correctly adapts its contents to its size when the file mask, date, and size settings are hidden.

See also: PowerGREP 4.1.0 version history

PowerGREP 4.0.6 – 23 March 2010

This release fixes several issues we missed in the 4.0.x releases last month.

Executing an action using the “list files” action type and the “save results into a single file” target type no longer causes the action to fail with an access violation error after all files were found. The list of files is now saved correctly into the target file.

Actions that search through files in an archive and modified some of the files searched through now correctly update the archive. In previous 4.0.x releases the files that were modified were stored correctly in the archive but the files that were searched without modification were damaged.

Creating a portable installation via the Help menu in PowerGREP now copies over the required file 7z.dll. If you previously created a portable installation via the Help menu, make sure to update it with PowerGREP 4.0.6. PowerGREP needs its own copy of 7z.dll. Other versions of this DLL may not work.

PowerGREP no longer hangs when expanding drives that do not support ReadDirectoryChangesW. That includes drives created by 3rd party utilities such as ExpanDrive as well as shared folders in Parallels. Because PowerGREP cannot monitor these drives for changes the globbing process will be repeated for each search. For local drives and normal Windows network drives PowerGREP can monitor changes, allowing it to cache directory listings and skip the globbing process if no files were changed since the last search.

Incremental search on the Results and Editor search bars now properly resets the search origin when moving the cursor.

See also: PowerGREP 4.0.6 version history

PowerGREP 4.0.5 – 9 March 2010

This release fixes several issues we missed in the 4.0.x releases last month.

Since version 3.3.0 PowerGREP has been capable of searching through .zip files that are stored inside other .zip files. What PowerGREP did not handle correctly until now is .zip files stored inside a folder inside another .zip file. Those were completely ignored unless you manually expanded the .zip inside the folder inside the other .zip in the File Selector.

New in version 4 is the ability to import file listings from text files in the File Selector. A bug in this feature caused PowerGREP to lock up completely if the file listing included the root of a drive such as C:\ for a local drive or \\SERVER\SHARE\ for a network drive. Now PowerGREP handles those correctly. For drives to be recognized, the trailing backslash is required.

Also new in version 4 is the ability to use the IFilter system to decode files in proprietary formats for which PowerGREP does not have built-in decoders (or to replace the built-in decoders). This is the system that Microsoft designed to allow Windows Search to handle such files. PowerGREP 4.0.4 (this release only) had a bug that caused a “string list does not allow duplicates” error when PowerGREP checked the availability of an IFilter for a particular file type for the second time. It should do this check only once. The option “use IFilter to decode the compound document into plain text” in the Archive Formats section in the Preferences was partially broken in all 4.0.x releases. This option caused compound documents such as Office 2007 files to be treated as binary files when an IFilter was available for them and the option “decode binary files using IFilter” was turned on in the File Formats section of the Preferences. Now the option “decode binary files using IFilter” is ignored for compound documents.

See also: PowerGREP 4.0.5 version history

PowerGREP 4.0.4 – 2 March 2010

This release fixes several issues we missed in the 4.0.x releases last month.

In PowerGREP’s built-in file editor, saving a huge file under a new name correctly saved the file but corrupted PowerGREP’s view of the file if parts of the file after the first insertion or deletion in the file were swapped out to disk when saving.

Search-and-replace and search-and-delete actions now skip files that are read through an IFilter instead of clobbering the file by replacing it with the IFilter’s text conversion. The IFilter system is read-only. It was designed by Microsoft for Windows Search, which has no features for modifying files. Running a search-and-replace using a (delimited) list of search terms with “non-overlapping search” turned off no longer fails with an access violation if one of the search terms does not find any matches.

If the target settings on the Action panel may create target archives out of order then PowerGREP 4.0.4 creates archives after the grepping has completed. When the progress meter reaches 100% its text label indicates that archives are being created. Creating each archive once at the end instead of during the action saves time and allows newly created 7-zip archives to be solid. It does increase memory and temporary file usage.

New in PowerGREP 4 is support for individually compressed files using gzip and bzip2. Renaming a file to add or remove the .gz or .bz2 extension automatically compresses or decompresses the file. Starting with version 4.0.4, undoing such an action decompresses or recompresses the file along with restoring the original file name.

PowerGREP is now smarter about literal line breaks in regular expressions. Literal line breaks are inserted into the Search box by pressing Enter, as opposed to typing \r\n. Literal line breaks now match a line break in any style (Windows, UNIX, or Mac) rather than only a Windows-style line break as in previous versions of PowerGREP. The behavior of literal line breaks in plain text searches is unchanged. Those still only match Windows-style line breaks.

File masks with multiple adjacent spaces matched only a single space for each block of spaces in the file mask. This affected all file masks in the File Selector and in the Preferences. The File Selector again indicates folder totals after executing the action, as PowerGREP 3 used to do.

On the Results panel, double-clicking a highlighted replacement (green when using the default colors) after a search-and-replace now correctly opens the target file instead of the source file when making replacements in copies of the files rather than the original files.

On the Action panel, the Check All and Uncheck All items in the context menu of lists of search terms did not work correctly. They correctly checked or unchecked the checkboxes, but did not modify the actual PowerGREP action. Checking or unchecking an individual checkbox would revert all the checkboxes to their state prior to the Check All or Uncheck All command.

In the Editor section of the Preferences, the list of file navigation schemes wasn’t properly cleared. This caused schemes to be listed repeatedly and triggered “index out of bounds” errors when selecting a duplicate.

See also: PowerGREP 4.0.4 version history

PowerGREP 4.0.3 – 18 February 2010

Bug fixes:

PowerGREP 4.0.2 – 12 February 2010

Bug fixes:

PowerGREP 4.0.1 – 11 February 2010

Improvement:

Bug fixes:

PowerGREP 4.0.0 – 9 February 2010

PowerGREP 4 is a major upgrade with a long list of new features and improvements. These are some of the more important new features.

PowerGREP 4 is a full Unicode application. While PowerGREP 3 fully supported Unicode in the contents of the files it searched through, PowerGREP 4 supports Unicode everywhere. The main benefit is that it can read files with characters that are not supported by your computer’s default code page. This does mean that PowerGREP 4 only runs on Windows 2000, XP, Vista, and 7. Windows 98, ME, and NT4 are no longer supported. PowerGREP will refuse to run at all on anything older than Windows 2000. If you’re using Windows 2000 you should have Service Pack 4 installed.

PowerGREP’s edit controls now support bidirectional text editing. This means you can properly work with text in right-to-left languages such as Arabic and Hebrew, and languages written with complex scripts such as the Indic scripts. To make it easy to switch between the editing modes that you prefer for various writing systems, all editing settings are now grouped into what PowerGREP 4 calls a “text layout”. You can configure separate text layouts in the Action, Results, and Editor sections of the Preferences screen. These settings include font, text direction, cursor movement, word selection, line and character spacing, etc.

PowerGREP can now search multiple files simultaneously. This speeds up searching for complex regular expressions (i.e. CPU-intensive searches) by using more than one CPU core. It also speeds up searches across multiple disks or servers by searching files on different disks or servers at the same time. In the Action section of the Preferences you can configure just how much of your PC’s processing power you want PowerGREP to use.

The Action panel has lots of new options that give PowerGREP new capabilities. Some of the features that were already in PowerGREP 3 have been rearranged a bit to make room for the new features. E.g. the file sectioning is now positioned before the main part of the action to better indicate the order in which your regular expressions are applied.

The “action type” drop down list provides 5 new choices: Simple search, rename files, delete search matches, merge files, and split files. The “simple search” action type runs a search just like “display search matches” used to do, except that it provides fewer options. This provides a less busy interface when you don’t need all of PowerGREP’s power. The “display search matches” action type was renamed to “search” and shows all the options. The “rename files” action type allows you to rename, move, or copy files by running a search-and-replace through their file names. The “delete search matches” action type is identical to the “search-and-replace” action type, except that it doesn’t ask for a replacement text. It replaces all matches with nothing, thus deleting them. There’s also an option to delete only duplicate matches. The “merge files” action type is similar to the “collect data” action type, except that it collects the entire file if a search match is found in a file. The “split files” action type is also similar to “collect data”. It collects individual matches like “collect data” does, but instead of using the replacement text as the text to be collected, it expects the replacement text to specify a path to a file to save the match in. The “collect data”, “merge files”, and “split files” action types now all have the ability to save matches from multiple source files into a single target file without requiring the matches from all source files to be saved into the same target file.

PowerGREP 3 introduced the concept of “file sectioning” which it used both to restrict the search to different parts of the file as well as to display context on the Results panel. In PowerGREP 4, the same file sectioning options are available, but they’re only used to restrict the search to different parts of the file. The Action panel now provides a totally separate set of options to collect context. So you can have line-based context even if you’re not using line-by-line file sectioning. You can also collect additional blocks or lines of context before and/or after each match. Using sections as context is still available as an option.

Right-clicking on a Search box on the Action panel shows a new Match Placeholders item. This item allows you to insert any of the match placeholders supported by PowerGREP. PowerGREP 4 supports a whole bunch of new placeholders for match counts, dates, and file sizes. You can also do basic arithmetic on numeric placeholders, including on search matches that happen to be numbers. This makes it easy to create and edit various numbered lists.

While PowerGREP 3 could transparently read and write zip archives, PowerGREP 4 can do the same with zip, 64-bit zip, 7-zip and tar archives. It can also compress an decompress individual files using gzip and bzip2. Archives using the ARJ, CAB, ISO, UDF, DEB, LHA, LHZ, RAR, RMP, and WIM formats can be searched through but not modified.

IFilter support enables PowerGREP 4 to search through any file format for which you have an IFilter installed. IFilter is the system used by Windows Search to search through files in proprietary formats. By default PowerGREP uses IFilter to search DOC and DOCX files. Compared with PowerGREP’s built-in decoders, this adds Unicode support for DOC, and allows DOCX files to be searched without XML codes.

PowerGREP 3 allowed you to make and revert individual replacements on the Editor panel after previewing or executing a search-and-replace. PowerGREP 4 takes this functionality to a whole new level. You can now make and revert replacements on both the Results and Editor panels. Changes made on one panel are automatically reflected in the other. In addition to making or reverting individual replacements, the Editor panel can now make and revert all replacements in the selected text, and all matches in the file you have opened. The Results panel can do all that and also make or revert all replacements in all selected files or in all files listed in the results. This means that if you preview an action and then want to execute it for real, you can simply tell the Results panel to make all the replacements instead of executing the action again.

To assist with editing your files after previewing or executing an action, the Results and Editor panel now have their own search toolbars. They’re docked at the bottom by default but you can drag them elsewhere like any other toolbar. These search bars allow you to quickly search through the results as displayed on the Results panel or through the file you have opened in the editor.

PowerGREP 3 could copy, move, and delete files while executing a “find files” action. PowerGREP 4 can still do this even though the action type was renamed to “list files”. What’s new in PowerGREP 4 is that the Results menu has items to copy, move, and delete files after executing any kind of action. It can do this with the files that were searched through, the files in which matches were found, the files in which no matches were found, or the target files that were created. The File Selector menu can also copy, move, and delete the files or folders that you have selected in the File Selector, whether an action was executed or not.

If you previously used batch files to execute multiple PowerGREP actions, you can now combine all those actions into a single PowerGREP Sequence and invoke PowerGREP just once to execute all actions in the sequence. Actions in a sequence can be made to operate on the files in which matches were found by a previous action in the sequence, or the files in which no matches were found by a previous action, or the target files that were created by a previous action.

The Library panel may seem unchanged. But PowerGREP libraries can now store file selections, search terms, and sequences in addition to actions. You’ll find new Add to Library items in the File Selector and Sequence menus. There’s also an Add to Library item in the menu that appears when you click one of the black downward pointing triangles above a Search box on the Action panel. This menu also has copy and paste items to copy whole lists of search terms.

The fixed display limit of 100,000 characters was replaced with a dynamic limit based on actual memory usage with an upper limit that can be set in the Preferences. Problems with individual files no longer cause PowerGREP to lock up, regardless of whether the problem is the file or a bug in PowerGREP. The thread handling the file is aborted, an error is added to the results, and a new thread proceeds with the next file.

Actions can now be paused and resumed. This can be useful if PowerGREP is executing a big job and you want it to wait while you use your computer for another task. When running PowerGREP unattended, you can use the /silent command line parameter to stop PowerGREP from displaying anything on the screen.

Finally, you can talk about all this and everything else related to PowerGREP and regular expressions on the new built-in discussion forum. If you have purchased PowerGREP 4, you can access it via the Forum tab right in the PowerGREP 4 software itself.

If you purchased PowerGREP on or after 9 February 2009, you can download PowerGREP 4.0.0 immediately. This date takes our policy of one year of free major upgrades into account.

If you purchased PowerGREP before 9 February 2009, you can upgrade to PowerGREP 4.0.0 at a significant discount. Upgrade purchases are also covered by our 3-month money-back guarantee. If you’d like to try version 4 first, you can install the free trial version of PowerGREP 4 next to your licensed version of PowerGREP 3. PowerGREP 3 and 4 can be installed and uninstalled separately.

If you did not purchase PowerGREP yet, you can buy PowerGREP now or download the free trial version.

See also: PowerGREP 4.0.0 version history