by Barry Dysert
(last updated December 19, 2016)
The "Find" command is usually adequate for most of your needs (see the tip entitled Using the Find Command), but there is also a "Findstr" command that is more powerful for those times when you need to find strings under certain circumstances. In its simplest form, Findstr looks like Find:
C:\> FINDSTR "document" Barry?.tmp
Findstr accepts several more switches than Find, and you can see a complete list by typing the following:
C:\> FINDSTR /?
The first difference you'll notice between the output of Find vs. Findstr is that the latter prefixes each found line with the name of the file in which it is found: (See Figure 1.)
Figure 1. Findstr displays the file names in-line with the found string.
There are over a dozen switches available with Findstr, but instead of going through them all I'll just tell you some of the more important (imo) functions available over what the Find command has. The first thing I'll mention is that you can search for multiple strings at the same time. If the search string you're looking for contains spaces, Findstr will assume you want to find string1 or string2 or string3, etc. For example, if you want to find all lines that contain either "document" or "text" you just separate the words with a space like so: (See Figure 2.)
Figure 2. Searching for two strings at once.
Another nice feature is that Findstr can search files in subdirectories. Let's say that I have Barry1.tmp in my \Temp directory and Barry2.tmp in my \Temp\Temp2 directory. From the \Temp directory I can use the "/S" switch to tell Findstr to search subdirectories. It looks like this: (See Figure 3.)
Figure 3. Using /S to search subdirectories.
There is a good deal more functionality that I could show you, but a final one really bears special notice. That is the concept of searching using Regular Expressions. "Introduction to Regular Expressions" is covered under another Tip, but I want to show you how a regular expression can be used in Findstr.
Let's say you want to search for the word "document", but only those occurrences that are followed by a punctuation mark like a comma or a period. The regular expression for this type of search is "document[,.]". You indicate to Findstr that your search string is using a regular expression by specifying the "/R" switch, and let's add the "/N" switch so we see line numbers. What you end up with is this: (See Figure 4.)
Figure 4. Search using a Regular Expression.
There is still more to Findstr, but I hope I've whetted your appetite enough to where you'll start using it when you need to do some fancy searching for strings in files.
This tip (13505) applies to Windows 7, 8, and 10.
Finding data within files is a common need. If what you're looking for is in a flat file, you can find what you're after ...Discover More
If you work at the command level very much, you may want to change the fonts that are used. You can control what ...Discover More
The rename command can really be a timesaver over trying to do the similar sort of thing with Windows Explorer. You can ...Discover More
FREE SERVICE: Get tips like this every week in WindowsTips, a free productivity newsletter. Enter your address and click "Subscribe."