HomeLinuxHow to Count Lines in a File Using Linux Terminal

How to Count Lines in a File Using Linux Terminal

Linux terminal offers efficient methods for counting lines in files, which are useful for analyzing log files, processing text data, or providing an overview of file contents. In this blog, we will learn different methods to easily count lines in a file using a Linux terminal.

Common Methods

There are four common methods used to count lines in Linux: wc, grep, awk, and sed. The right tool to use depends on your specific scenario. The below flowchart gives an idea about which tool you must use in your use case without causing much confusion!

Using wc Command

The wc (word count) command is a versatile tool that can count lines, words, and characters in a file. To count lines, use the -l option with wc:

wc -l filename

This will output the number of lines followed by the filename. To display only the number of lines without the filename, use:

wc -l < filename

You can also pipe data into wc:

cat filename | wc -l

Or count lines from a web page or other command outputs:

curl veeble.org --silent | wc -l

Using grep Command

The grep command can also be used to count lines matching a specific pattern:

grep -c "pattern" filename

To count lines that do not match a pattern:

grep -c -v "pattern" filename

For counting lines in a file without specific patterns, use:

grep -c ^ filename

Using awk Command

The awk command is another option for counting lines:

awk 'END{print NR}' filename

To exclude empty lines:

awk '/^./ {c++} END{print c}' filename

Using sed Command

The sed command can be used with:

sed -n '$=' filename

This prints the total number of lines in the file.

Additional Methods

  • Counting Lines in Multiple Files: cat *.txt | wc -l
  • Counting Lines in Files within a Directory: find . -type f -exec wc -l {} +
  • Counting Lines in Files with Specific Patterns: grep "pattern" filename | wc -l
  • Counting Lines in Subdirectories with a Pattern: wc -l ./**/*_SuccessLog.csv

Files Without a Trailing Newline:
POSIX standards allow files to end without a newline character. In such cases, tools like wc might not count lines as expected. For a more robust solution, consider using grep with ^ to count lines accurately regardless of the trailing newline.

Counting lines in a document can be achieved using various commands and methods in Linux. The choice of tool may depend on your specific needs, such as handling different file formats, filtering content, or processing multiple files. The methods outlined above provide a comprehensive approach to managing and analyzing text files through the terminal.

Scroll to Top