日常用 Linux 或 macOS 做开发、运维、数据分析,经常要快速知道一个文件有多少行——比如看日志里今天写了多少条记录,查代码文件总共多少行,或者确认配置文件有没有被意外删空。
最常用的命令:wc -l
核心命令就一个:wc -l(word count line),它专干统计行数这活儿:
wc -l access.log输出类似:12487 access.log,表示这个日志有 12487 行。
如果不想显示文件名,只想要纯数字,加个 < 重定向或管道就行:
wc -l < access.log
cat access.log | wc -l实际场景怎么用?
查某个目录下所有 .sh 脚本总行数:
find . -name "*.sh" -exec cat {} + | wc -l排除空行和注释行(比如统计有效代码行):
grep -v "^$\|^#" script.sh | wc -l这里 ^$ 匹配空行,^# 匹配以 # 开头的注释行,-v 表示反向筛选。
实时看日志新增了多少行(配合 tail -f):
tail -f /var/log/syslog | wc -l注意:这样会卡住不动,因为 wc -l 要等输入结束才输出;更实用的是结合 awk 计数:
tail -f /var/log/syslog | awk '{print NR}'每来一行就打印当前总行数,适合监控增长趋势。
其他顺手小技巧
想看前 10 行+行号?head -n 10 file.txt | nl;
想统计某关键词出现多少次(按行计)?grep -c "ERROR" app.log;
多个文件一起统计?直接列出来:wc -l file1.txt file2.conf *.log,最后还会自动加一行总计。
别小看这一行 wc -l,搭上 find、grep、awk,就能应对从查配置、审代码到盯日志的大部分行数需求。