findstr DOS Command's multiple string argument
Solution 1
How do I filter words "black" and "white"?
The following command will display all lines containing "black"
NOR "white"
:
findstr /v "black white" blackwhite.txt
The following command will display all lines containing "black"
OR "white"
:
findstr "black white" blackwhite.txt
The following command will display all lines containing EXACTLY "black white
":
findstr /c:"black white" blackwhite.txt
The following command will display all lines containing "black"
AND "white"
:
findstr "white" blackwhite.txt | findstr "black"
Notes:
When the search string contains multiple words, separated with spaces, then
findstr
will return lines that contain either word (OR).A literal search (
/C:string
) will reverse this behaviour and allow searching for a phrase or sentence. A literal search also allow searching for punctuation characters.
Example data file (blackwhite.txt):
red
black
white
blue
black white
black and white
Example output:
F:\test>findstr /v "black white" blackwhite.txt
red
blue
F:\test>findstr "black white" blackwhite.txt
black
white
black white
black and white
F:\test>findstr /c:"black white" blackwhite.txt
black white
F:\test>findstr "white" blackwhite.txt | findstr "black"
black white
black and white
Further Reading
- An A-Z Index of the Windows CMD command line - An excellent reference for all things Windows cmd line related.
- findstr - Search for strings in files.
Solution 2
If you need to display all lines with the words "black" or "white" then get rid of the /v in your command.
Try: findstr white File1.txt or findstr black File1.txt or findstr "black white" File1.txt
The /V operand will print all lines that DO NOT contain your search string.
Type findstr /? for more info on how to use findstr.
Related videos on Youtube
Arun
Updated on September 18, 2022Comments
-
Arun over 1 year
findstr /v "black" File1.txt
Above DOS command will display content of 'File1.txt' which are not matching string "black".
How to modify this command , if I need to filter words "black" and "white" ?
-
Michel de Ruiter almost 8 yearsThe
findstr
tool is not part of MS-DOS. It comes with Windows (XP+?). I think you mean 'command line tool' instead of 'DOS command'.
-
-
barlop almost 9 yearsvery interesting.. I guess this would be searching for white AND black
findstr "white" File2.txt | findstr "black"
-
barlop almost 9 yearswell, since we have NOR, So there is still a permutation we could consider missing. NAND. Another one we could consider missing, is XOR
-
DavidPostill almost 9 years@barlop I can't figure out how to do NAND or XOR :/ I know what the output should be but how to get there ...
-
barlop almost 9 yearsmaybe there isn't a nice quick way, it'd probably be a batch file checking errorlevel probably better to use some other tool if doing that, looks like grep can't,. But awk can do quite a bit or of course perl unix.stackexchange.com/questions/177513/…
-
barlop almost 9 yearsLet us continue this discussion in chat.
-
Community about 2 yearsYour answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
-
Admin almost 2 yearsWelcome to Super User! Before answering an old question having an accepted answer (look for green ✓) as well as other answers ensure your answer adds something new or is otherwise helpful in relation to them. Here is a guide on How to Answer. There is also tour for the site tour, and help center for the help center.