Findstr command on Windows is useful for searching for specific text pattern in files. It’s functionality is similar to the grep command on Linux OS. You can find below the syntax of ‘findstr’ for various use cases.
Search for text/string in a file:
For example, to search for the string ‘Windows’ in the text file CLItips.txt, the command would be as below.
Note that the above command looks for exactly ‘Windows’. It considers case by default. So if you have a line that has the word ‘windows’, it would not be printed in the output of the above command.
Copy a single file to another location. Open a command-line window. Click the Windows button to open the Start menu and type 'cmd.exe' in the 'Search programs and files' text box. From the Start menu, choose All Programs→Accessories→Command Prompt. Type CD and press Enter. That’s CD, a space, and then the backslash character. This command propels you to the root directory (folder) on the main hard drive. Type DIR and a space. Type the name of the file you’re looking for. Tutorial on using find, a UNIX and Linux command for walking a file hierarchy. Examples of finding a file by name, finding and deleting a file, finding a directory and searching by modification time and permissions.
Ignore text case:
You can add /I switch to ignore the case in the search. So if you run ‘findstr windows /I CLItips.txt‘, it does case insensitive pattern matching.
- I need to find the files in a directory that have specific strings, using Windows CMD prompt. CMD Search a directory to Find a string inside a file. Ask Question 1. Findstr is the command, /I is a flag to match the string case insensitive.
- Findstr command information for MS-DOS and the Windows command line. Microsoft DOS findstr command. Search for any file containing 'computer help' regardless.
Search for any of the given words
If you want to print the lines having any of the given word set, you can enclose the list of words in double quotes in findstr command.
This command would print a line if it has has either the word ‘Apple’ or the word ‘Orange’ or both the words.
Search for pattern with multiple words
/C indicates that the search pattern has to be matched literally.
For example, to search for the string “Apple Ball Cat” in file Book.txt, the command would be as below
Search with Regular Expressions
You can use regular expressions with findstr /R switch. Typical command would be as below.
Here the pattern can be specified using regular expressions.
Examples:
Search for the occurrence of all words ending with ‘xyz’ in a file.
Search for text in all the files in a current directory
You can use wildcard ‘*” to specify that all the files in a directory should be searched for the given string.
For example, to search for ‘windows’ in all the files in the current directory, you can use the below command.
To search all the text files in the directory C:data:
Search for multiple strings
If you need to search for multiple strings, then you can do that with the below batch script.
‘pattern.txt ‘is the file having the strings(one per line) that need to be searched for. The above command searches only text files. You can customize the findstr command in the script to search in files with other extensions. Adding ‘/M’ option to the command causes to print only the file names.
Print only the lines where the given string is at the beginning of the line.
You can add /B switch to indicate that the specified string should be in the beginning of the line.
Print only the lines where the given string is at the end of the line
Print line numbers for all the matched lines.
You can add /N switch to the findstr command to print line numbers for the matched lines.
Dos Command Search Text In Files
Print only the filenames
Dos Command Search Within File File
This command searches for the pattern in all *.log files, and then prints only the file names having the pattern. Even if a file has multiple occurrences of the pattern, it’s printed only once by findstr.