千问 讲讲 wc -l、cat|wc -l、grep -c 的区别吗?
·
我给你用最清晰、面试也常问的方式讲一遍,一看就懂。
三种统计行数的区别
- wc -l 文件名
bash
wc -l nowcoder.txt
- 直接统计文件行数
- 不需要读整个文件内容到管道
- 效率最高,大文件首选
- 输出会带文件名: 100 nowcoder.txt
- cat 文件名 | wc -l
bash
cat nowcoder.txt | wc -l
- 先把文件内容全部输出,再通过管道给 wc 统计
- 多了一次 IO 和管道传输
- 效率低一点,但结果一样
- 输出只显示数字: 100
- grep -c “.*” 文件名
bash
grep -c “.*” nowcoder.txt
- grep -c :统计匹配到的行数
- .* 匹配任意一行
- 结果和行数一样
- 本质是正则匹配计数,不是专门统计行数的工具
极简总结
- 要最快 → wc -l file
- 要只输出数字 → cat file | wc -l
- 没事别用 grep 统计行数
牛客题标准答案
如果题目只要求输出纯数字:
bash
cat nowcoder.txt | wc -l
如果不限制格式:
bash
wc -l nowcoder.txt
需要我再给你讲讲空行会不会被统计、最后一行没有换行符会不会漏统计这些坑点吗?
更多推荐




所有评论(0)