How to find the number of occurrences of a string in file using windows command line?

前端 未结 9 1302
生来不讨喜
生来不讨喜 2021-01-01 23:35

I have a huge files with e-mail addresses and I would like to count how many of them are in this file. How can I do that using Windows\' command line ?

I have tried

相关标签:
9条回答
  • 2021-01-02 00:34

    Why not simply using this (this determines the number of lines containing (at least) an @ char.):

    find /C "@" "mail.txt"
    

    Example output:

    ---------- MAIL.TXT: 96
    

    To avoid the file name in the output, change it to this:

    find /C "@" < "mail.txt"
    

    Example output:

    96
    

    To capture the resulting number and store it in a variable, use this (change %N to %%N in a batch file):

    set "NUM=0"
    for /F %N in ('find /C "@" ^< "mail.txt"') do set "NUM=%N"
    echo %NUM%
    
    0 讨论(0)
  • 2021-01-02 00:35

    I found this on the net. See if it works:

    findstr /R /N "^.*certainString.*$" file.txt | find /c "@"
    
    0 讨论(0)
  • 2021-01-02 00:37

    Very simple solution:

    grep -o "@" mail.txt | grep -c .
    

    Remember a dot at end of line!

    Here is little bit more understandable way:

    grep -o "@" mail.txt | grep -c "@"
    

    First grep selects only "@" strings and put each on new line.

    Second grep counts lines (or lines with @).

    The grep utility can be installed from GnuWin project or from WinGrep sites. It is very small and safe text filter. The grep is one of most usefull Unix/Linux commands and I use it in both Linux and Windows daily. The Windows findstr is good, but does not have such features as grep.

    Installation of the grep in Windows will be one of the best decision if you like CLI or batch scripts.

    0 讨论(0)
提交回复
热议问题