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

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 1 comment so far... add one

CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
1 comment… add one
  • MacATDBB Feb 3, 2014 @ 13:11

    “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 Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Problem posting comment? Email me @ webmaster@cyberciti.biz