Unix / Linux: grep Word Count Command

by on May 5, 2012 · 1 comment· LAST UPDATED May 5, 2012

in

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
 
TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 1 comment… read it below or add one }

1 MacATDBB February 3, 2014 at 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?

Reply

Leave a Comment

Tagged as: , , , , , , , ,

Previous Faq:

Next Faq: