There are numerous ways to count the number of lines in a file in Linux. We’ll go over some of the quickest ways to achieve this task and get the line count.
Ways to Count the Number of Lines in a File
Let’s start with the most common and move to some more uncommon but also useful methods of counting lines in Linux.
1. Using the wc command
The easiest way to count lines in Linux is with the use of the wc (word count) command. That’s because the command is created with the purpose of counting lines and words in files.
wc -l filename
2. Using the grep command
Grep filter searches a file for a particular pattern of characters and displays all lines that contain a specific pattern. Grep is short for global regular expression print.
grep --regexp="$" --count filename
‘$’ in regular expression is used for signifying the end of a line. –count is used to count the number of lines that match the pattern. This command matches end of line of prints the count.
3. Using the awk command
We recently covered the awk command in our previous tutorial. The number of records (NR) can be printed in the END section to get the number of lines in a Linux file.
awk 'END { print NR }' filename
4. Using the sed command
sed is a tool used for editing files. Sed is primarily used for replacing/deleting/ adding text to a file. However, it can also be used for counting the number of lines in a file.
sed -n $= filename
5. Using a Perl Script to Count Lines
Perl officially stands for “Practical Extraction and Reporting Language”. Perl, much like bash is also a scripting language.
perl -lne 'END { print $. }' filename
6. Using while loop
While loop in shell scripts can also be used to count the number of lines. Using the while loop to count the number of lines in file will give a little ego boost to the programmer within you.
count=0
while read
do
((count=$count+1))
done <file.txt
echo $count
The loop reads standard input line by line and increases the variable count each time. Due to redirection (<file.txt after done), standard input for the loop is from file.txt
Conclusion
These are several ways to count the number of lines in a file in Linux. Using wc is the easiest and trivial way to achieve this. Another factor to consider is the time that each of these commands takes to count the number of lines. Time becomes an important aspect if the file is too voluminous and contains millions of lines. If you are interested in knowing about the performance of each command in terms of time taken, check this answer on StackOverflow