≡ Menu

Unix / Linux: grep Word Count Command

How do I count words using grep command under Linux / Unix like operating systems?

You can pass the -c option to grep command to suppress normal output and display a count of matching lines for each input file. The syntax is follows:

 
grep -c "word" file
grep -c "string" file
 

In this example, search for a word called 'var' and display a count of matching lines:

 
grep -c 'var' /etc/passwd
 

Sample outputs:

23

You can pass the -v option to count non-matching lines:

 
grep -v 'var' /etc/passwd
 

However, this will not count words. To count exact matched words, enter:

 
grep -o -w 'word' /path/to/file/ | wc -w
 

The grep -o command will only display matched words and the wc -c command will display the word counts:

 
grep -o -w 'foo' bar.txt | wc -w
 
Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 1 comment… add one }

  • MacATDBB February 3, 2014, 1:11 pm

    “The grep -o command will only display matched words and the wc -c command will display the word counts”

    Should this be wc -w per the example code? wc -c will display the byte count?

Leave a Comment