count lines in a file
The standard way is with wc
, which takes arguments to specify what it should count (bytes, chars, words, etc.); -l
is for lines:
$ wc -l file.txt
1020 file.txt
Steven D forgot GNU sed
:
sed -n '$=' file.txt
Also, if you want the count without outputting the filename and you're using wc
:
wc -l < file.txt
Just for the heck of it:
cat -n file.txt | tail -n 1 | cut -f1
As Michael said, wc -l
is the way to go. But, just in case you inexplicably have bash
, perl
, or awk
but not wc
, here are a few more solutions:
Bash-only
$ LINECT=0; while read -r LINE; do (( LINECT++ )); done < file.txt; echo $LINECT
Perl Solutions
$ perl -lne 'END { print $. }' file.txt
and the far less readable:
$ perl -lne '}{ print $.' file.txt
Awk Solution
$ awk 'END {print NR}' file.txt