1

I have a large list of names that I have to search through many times a day. Using "find" in Notepad has gotten me by, but is there a way in the command line to display the matching strings by line number?

Also, is there a way to make this command happen, if it does exist, using a very simple gui? I'm trying to automate this task as much as possible, and could use some help.

Also, is there a way that I could make a text file with things to search in each line, then run a command on it to see if anything matches with the main names list?

2 Answers 2

0

Try "findstr":

findstr/?
Searches for strings in files.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

  /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.
  [drive:][path]filename
             Specifies a file or files to search.

Use spaces to separate multiple search strings unless the argument is prefixed
with /C.  For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y.  'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.

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 metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

For full information on FINDSTR regular expressions refer to the online Command
Reference.

Another option is the Powershell 'Select-String' cmdlet:

http://blogs.technet.com/b/heyscriptingguy/archive/2011/08/04/use-an-easy-powershell-command-to-search-files-for-information.aspx

1
  • Thanks, that works. Now how can I make it so that it's in a window with a dialog box for input and send it to the command line with the results for ease of use to others?
    – slammins
    Jul 22, 2015 at 15:48
0

Windows Grep. It's pretty simple, and kind of an older GUI, but it works well. It shows all the matching lines in the results with line numbers and when you click on each, you see the line with the value highlighted and a few lines above and below as well. I believe you can only search for one text string at a time though, and it will search all files in a set of directories, so may not be exactly what you want. If you're not familiar with grep, on Unix/Linux it's a way to search for text data within files.

1
  • Tried it; not what I was looking for.
    – slammins
    Jul 22, 2015 at 15:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .