Sometime we need to filter out a console command output and display only the portion that we want to show to the user. This could be based on any specific term or string that we want to include or exclude based on our requirement.
Today, here in this post, we are going to discuss on this and learn how to extract/filter the said information from the console command output.
There is a command named “findstr” which you can use by combining with the ‘|’ (pipe) symbol to extract or filter only the portion of the console command output, based on the included terms and excluded terms that you pass as an argument.
The command file is an executable named “findstr.exe” and can be located at system directory (generally, at “C:\Windows\System32” folder).
When you want to find and display only the records that includes a specific term or terms, you have to pass the following command switch parameters: “/r /c”. To pass a single term, use /c:”TERM”. To pass multiple terms, use /c:”TERM1” /c:”TERM2” … /c:”TERMn” … and so on. The parameter “/r” uses search strings/terms as regular expressions, whereas “/c” followed by the string/term uses it as a literal search string.
For example, the following command filters out only the command output of “dir” that has a term “Music”:
dir | C:\Windows\System32\findstr.exe /r /c:”Music”
The below command filters out only the command output of “dir” that has either one of the following terms “Music”, “Documents” or “Down”:
dir | C:\Windows\System32\findstr.exe /r /c:”Music” /c:”Documents” /c:”Down”
Here is a screenshot of the above mentioned commands:
If you want to exclude a line that has a specific string/term, you can use the switch “/v” followed by the words under “/c” as discussed above. To exclude a single term, use /c:”TERM”. To exclude multiple terms, use /c:”TERM1” /c:”TERM2” … /c:”TERMn” … and so on.
For example, the below command filters out the command output of “dir” and prints only those lines which doesn’t have the term “Music” or “Documents”:
dir | C:\Windows\System32\findstr.exe /r /v /c:”Music” /c:”Documents”
Here you can find a screenshot of the same command and it’s associated output:
I hope that the point is clear to you now and you would be able to filter out a specific console command output based on a term to include or exclude in or from the result. You can also use the “findstr” command and the following switches to search inside a file from the command prompt.
/B Matches pattern if at the beginning of a line.
/E Matches pattern if at the end of a line.
/L Uses search strings literally.
/R Uses search strings as regular expressions.
/S Searches for matching files in the current directory and all subdirectories.
/I Specifies that the search is not to be case-sensitive.
/X Prints lines that match exactly.
/V Prints only lines that do not contain a match.
/N Prints the line number before each line that matches.
/M Prints only the filename if a file contains a match.
/O Prints character offset before each matching line.
/P Skip files with non-printable characters.
/OFF[LINE] Do not skip files with offline attribute set.
/A:attr Specifies color attribute with two hex digits. See "color /?"
/F:file Reads file list from the specified file(/ stands for console).
/C:string Uses specified string as a literal search string.
/G:file Gets search strings from the specified file(/ stands for console).
/D:dir Search a semicolon delimited list of directories
strings Text to be searched for.
Regular expression quick reference:
. Wildcard: any character
* Repeat: zero or more occurrences of previous character or class
^ Line position: beginning of line
$ Line position: end of line
[class] Character class: any one character in set
[^class] Inverse class: any one character not in set
[x-y] Range: any characters within the specified range
\x Escape: literal use of meta character x
\<xyz Word position: beginning of word
xyz\> Word position: end of word
Stay tuned for more articles on this topic and learn the power of console commands. See you then. Have a nice day ahead. If you liked the post, don’t forget to check out my others articles available in this blog.