≡ 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
Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:



{ 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?

Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , , , , , , , ,