WC Command in Linux – (How to) Print Character, Byte, Newline and Word Count

WC is a Linux command to print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified. If there is no input file parameter or it is “-” and then it reads the input from the standard input device.

WC Syntax

wc [OPTION]... [FILE]...
wc [OPTION]... --files0-from=F

All the parameters are optional.

Here,

Option basically controls what you want the command to do, shall it print byte, the character on newline count.

  • -c:- print the byte counts
  • -m:- print the character counts
  • -l:- print the newline counts
  • -L:- print the length of the longest line
  • -W:- print the word counts
  • –help:- Print help
  • –version:- Display version information

File is the input file name. You can pass multiple file names separated by space as input to wc command but when you do not specify any file name, the command expects you to enter in the standard input device i.e terminal.

Using WC Command (Examples)

WC command simply reads the input file or user-entered input text, count the number of newlines, characters, and bytes, and print on the terminal.

Let’s consider below sample file.

cat wc_demo.txt
this is line 1
this is line 2
this is line 3
this is line 4

cat wc_demo.txt command output

Enter the wc command with a file name(wc_demo.txt) as the input parameter as shown below.

wc wc_demo.txt
4 16 60 wc_demo.txt

wc output with only file name

You can see 4 columns output.

  • first column shows the number of newlines – 4
  • second column shows the number of words present in each file – 16
  • Third columns show the number of characters – 60
  • fourth column shows the name of the file – wc_demo.txt

You can also pass multiple files as input separated by space. When multiple files are there, it shows additional output (total) showing the total of all files as shown below.

wc wc_demo_1.txt wc_demo_2.txt
4  16  60 wc_demo_1.txt
3  12  45 wc_demo_2.txt
7  28 105 total

You can also input data from the keyboard.

Enter wc on shell prompt and click enter. Type any text separated with space and lines. Click enter and then press CTRL+D to end the input.

wc
this is what entered from input device
      1       7      39

It also supports shell special characters(metacharacters) like redirection and pipe. You can pass the output of any command to wc to get the required words and lines count.

Here ls command lists the content of the directory and the same is passed to wc using a pipe.

ls -l | wc
26 227 1684

The below example shows how the file is passed (wc_demo.txt) as input using < redirection.

wc < wc_demo.txt
1  4 15

The below example shows how the file is passed (wc_demo.txt) as input using < redirection and the output of the command is redirected to the output file using > redirection.

wc < wc_demo.txt > output
cat output
 1  4 15

WC Command (Examples)

Refer below example explaining different supported option.

1. Print the byte counts

Use – c option to print byte count.

wc -c wc_demo.txt
20 wc_demo.txt

2. Print the character count

Use – m option to print byte count. Output of -c and -m will be the same unless your file contains multi-byte characters e.g Chines, Japanese, etc

wc -m wc_demo.txt
20 wc_demo.txt

3. Print the newline count

-l option prints the newline count(not the number of lines). One point to remember here, wc works on “/n” lines character. It counts the newline not the number of lines. If there is no newline character, then the count will be one less.

Check this thread on StackOverflow.

wc -l wc_demo.txt
1 wc_demo.txt

4. Print length of the longest line

-L print the length of the longest line. Remember the difference between capital case L and small case l.

wc -L wc_demo.txt
19 wc_demo.txt

5. Print the word count

-w option prints the word count.

wc -w wc_demo.txt
4 wc_demo.txt

Below are generic parameters supported by all the commands

6. –help option displays help and exit

wc --help

wc help output

7. –version option output version information and exit

wc --version

wc version output

Summary

The ‘wc’ command in Linux is a versatile utility that allows users to count characters, bytes, newlines, and words in files and input data. It comes in handy for processing text files and can be easily combined with other Linux commands through pipes. In this guide, we explored the various options and use-cases of the ‘wc’ command to help you better understand its functionality and usage in a Linux environment.

You can always refer manual by running the man wc command on the terminal.

I hope you found this article useful. Please share and subscribe.

Scroll to Top