0
0
Bash-scriptingHow-ToBeginner · 3 min read

How to Count Lines in a File Using Bash Commands

To count lines in a file using Bash, use the wc -l filename command which outputs the number of lines. Alternatively, you can use grep -c '' filename to count lines by matching every line.
📐

Syntax

The basic syntax to count lines in a file is:

  • wc -l filename: Counts the number of lines in the file named filename.
  • grep -c '' filename: Counts lines by matching every line with an empty pattern.

Here, wc stands for word count, and -l tells it to count lines only.

bash
wc -l filename

grep -c '' filename
💻

Example

This example shows how to count lines in a file named sample.txt. It demonstrates the output of the wc -l command.

bash
echo -e "Line 1\nLine 2\nLine 3" > sample.txt
wc -l sample.txt
Output
3 sample.txt
⚠️

Common Pitfalls

One common mistake is using wc without the -l option, which counts words and bytes instead of lines. Another is forgetting that wc -l includes the filename in output, which may need trimming if only the number is required.

Also, using grep -c '' filename counts all lines but can be slower on large files compared to wc -l.

bash
wc filename  # Wrong: counts words and bytes, not lines
wc -l filename  # Correct: counts lines only
📊

Quick Reference

CommandDescription
wc -l filenameCount lines in the file
grep -c '' filenameCount lines by matching every line
head -n 10 filenameShow first 10 lines (not counting but useful)
tail -n 10 filenameShow last 10 lines (not counting but useful)

Key Takeaways

Use wc -l filename to quickly count lines in a file.
Remember wc without -l counts words and bytes, not lines.
The output of wc -l includes the filename; use text processing if only the number is needed.
Alternative grep -c '' filename counts lines but may be slower on large files.
Always verify the file exists and is readable to avoid errors.