bash - 计算文件 test.txt 中有多少个以“tol”开头的单词?
问题描述
我是 Linux shell 的新手。我知道有一些工具可以做这件事,比如 awk。但我想知道我是否可以使用 grep 或 wc 或其他命令来做到这一点?awk 对我来说似乎很吓人。谢谢。
我尝试了 grep 和 wc,如下所示:
grep tol test.txt | wc -w
但是 grep 会给我整行。
如果我尝试以下操作:
grep '^tol$*' test.txt | wc -w
它只计算以 mol 开头的行。
如何grep以tol开头的单词?
解决方案
你可以很简单地做同样的事情awk
,例如
awk '{for(i=1;i<=NF;i++) $i~/^tol/ && n++} END {print n}'
例子
$ echo -e "tolerance topaz tolstoy\nbats toluene toledo" |
> awk '{for(i=1;i<=NF;i++) $i~/^tol/ && n++} END {print n}'
4
推荐阅读
- oracle - 将 dmp 文件导入 Oracle
- c# - c#通过引用同一个json文件中的另一个值来获取json对象的值
- javascript - 如何在 Svelte 中设置条形高度向下的动画
- excel - 如何在excel中粘贴带有前导“0”的文本
- javascript - 发布后 iframe 未在网站上显示
- tooltip - Tableau 地图工具提示不显示平均参考线
- tensorflow - 如何创建使用少数客户端权重的 FL 算法?
- node.js - NPM:对等依赖项是否应该被列为对主机包的依赖项?
- angular - 没有 ngIf 的角度动画
- python - 使用 CNN 制作模型时出现运行时错误