数智应用帮
柔彩主题三 · 更轻盈的阅读体验

Shell统计行数命令:一行搞定文件行数、代码行数、日志条目数

发布时间:2026-02-10 21:41:42 阅读:105 次

日常用 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,搭上 findgrepawk,就能应对从查配置、审代码到盯日志的大部分行数需求。