首页 > 解决方案 > 计算文件 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开头的单词?

标签: bash

解决方案


你可以很简单地做同样的事情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

推荐阅读