在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看。例如,在处理大型日志文件、数据文件时,了解文件的行数可以帮助我们更好地评估数据量,进行后续的数据处理和分析。
wc是“word counter”的缩写,在UNIX和类UNIX操作系统中可以用来统计文件的行数、单词数和字节数。通过添加-l选项,可以专门统计文件的行数。
1 |
wc -l <filename> |
此命令会输出文件名和行数,例如:
1 2 |
$ wc -l /dir/file.txt 3272485 /dir/file.txt |
1 |
wc -l < <filename> |
示例:
1 2 |
$ wc -l < /dir/file.txt 3272485 |
1 |
cat /dir/file.txt | wc -l |
示例:
1 2 |
$ cat /dir/file.txt | wc -l 3272485 |
grep命令可用于在文件中搜索匹配的行。通过结合-c选项,可以统计匹配的行数。
1 |
grep -c ^ FILE |
1 |
grep -w "pattern" -c file |
1 |
grep -w "pattern" -c -v file |
awk是一种强大的文本处理工具,可以通过自定义脚本来统计文件的行数。
1 |
awk 'END{print NR}' file |
1 |
sed -n '$=' file |
1 |
nl filename |
此命令会为文件的每一行添加行号并输出。
1 |
wc -l <filename> |
1 |
grep -c ^ FILE |
1 |
awk 'END{print NR}' file |
1 |
sed -n '$=' file |
1 |
nl filename |
1 |
find . -type f -exec wc -l {} + |
wc -l命令是通过统计换行符的数量来确定行数的。如果文件不以换行符结尾,wc -l的统计结果会比实际行数少1。此时,可以使用grep -c ^命令来解决这个问题。
wc -l <filename>命令的输出会包含文件名。如果只需要行数,可以使用wc -l < <filename>或wc -l <filename> | awk '{print $1}'。
部分命令(如`sed -n ‘$=’)在某些系统上可能不支持。在使用时,需要确保系统支持相应的命令。