Thompson Custom Software proudly presents:

TCS Grep Sharp™


An advanced "grep" program that will search user specified files in user specified drives/folders for user specified text or regular expression.

Separating TCS Grep Sharp from similar or operating system provided grep functionality, TCS Grep Sharp is capable of searching binary or encoded files in addition to files where text is stored in a human readable form. For example, TCS Grep Sharp can search Word (.docx) and Excel (.xlsx) files as well as Portable Document Format (.pdf) files. Further, TCS Grep Sharp can unzip and search "ZIP" (.zip) files. TCS Grep Sharp can easily search thousands of word documents zipped in a large .zip file!

Search Limitations

Some folders on your drives may be protected by the operating system and/or require administrative privileges. Although the rationale for such is elusive to many, even when executed by the workstation owner with administrative privileges, TCS Grep Sharp cannot access these protected files and folders. Attempts to do so cause what is known as an I/O (Input/Output) error. These errors are caught by TCS Grep Sharp and searching the protected file and/or folder is necessarily skipped. At the end of a search run, the user is informed of the number of these I/O errors that were encountered and the exact object (usually a folder) name is logged along with the exact I/O error encountered. The protected folders and possible files can then be identified by the user by reviewing the end of the log and steps taken to "unprotect" them can be taken if thought necessary. Importantly though, these folders almost always contain system files and are extremely unlikely to contain user-generated documents or data.

Application User Support

Every CPU cycle on your system is precious as is your time. TCS Grep Sharp endeavors to utilize every CPU cycle in a manner to reduce the search time. To facilitate that, TCS Grep Sharp allows any search to be optimized using various selection criteria along with providing the ability to turn off potentially "expensive" features. For example, the ability to read Word and Excel files can be toggled on and off for any given search. If you know your text is not stored in a Word or Excel file, then there is no need to waste CPU cycles processing these file types for search. This capability as well as the ability to toggle processing PDF (.pdf) files for search and unzip ZIP (.zip) files can also be toggled on or off.

TCS Grep Sharp is fast and will return the results of your search in short order. To optimize search speed, TCS Grep Sharp allows the user to specify "file masks" - the file extension of files to be searched. For example, if you are looking for text known to be in a PDF (.pdf) file, "*.pdf" can be specified by the user as the file mask to search. In that manner, only .pdf files are searched not wasting time and energy searching files not known to contain the text or regular expression result desired. Multiple file masks can be provided by the user. For example, the user could specify "*.txt" and "*.asc" as the file types to search.

The ability to specify files to be searched based on their extension has been expanded so that in addition to specifying an "include" file mask or masks limiting the search to only files with the specified extension, an exclude mask or masks can be provided. The exclude mask(s) are typically utilized by specifying "*.*" (all files) for the "include" file mask and then providing one or more "exclude" file mask(s). For example, "*.*" could be specified for the include mask and "*.iso", "*.bak", and "*.xlsx" specified for the exclude file masks. TCS Grep Sharp will then search all files for the text or regular expression except those with .iso, .bak, or .xlsx file extensions.

Finally, the user specifies the drive(s) and folder(s) to search. An entire drive or drives can be specified if desired and network drives can also be included although search speed is dependent on the bandwidth of the network connection. Network drives typically take longer to search than their "local" counterparts. If desired, matches can be displayed as soon as found while searching continues. Alternatively all matches can be displayed when the search has completed. For example, searching for a code snippet, "c:\users\developerst" and "c:\sourcecode\solutions" might be specified with "search child folders" checked and an include file mask "*.cs". As illustrated in the diagram below, such a search would search for the specified text or regular expression in files with a .cs extension in the c:\users\developerst, c:\users\developerst\projectab, c:\users\developerst\projectbc, c:\sourcecode\solutions, c:\sourcecode\solutiona, c:\sourcecode\solutiona\project1, c:\sourcecode\solutiona\project2, and c:\sourcecode\solutiona\project3 folders. Whether or not to search "child folders" as described above is user specified. If checked (selected) as in the example, the "search child folders" option tells TCS Grep Sharp to search the specified folder(s) as well as search all the folders below that. For example, a "Solutions" folder might exist with indiviual project folders below that. Left unchecked, TCS Grep Sharp searches only the files in the specified folder leaving the files in the subfolders unsearched.

C:\ |── SourceCode\ | |── Solutions\ | |── SolutionA\ | |── Project1\ | |── Project2\ | |── Project3\ |── Users\ | |── DeveloperST\ | |── ProjectAB\ | |── ProjectBC\ | |── DeveloperAA\ | |── ProjectCD\ | |── ProjectDE\