使用AWK确定包含字符串的行数

时间:2014-05-03 08:16:16

标签: awk

我正在尝试使用AWK来确定文件中有多少行包含字符串。

BEGIN {RS=FS} 
{if ($0 ~ /ed/) n++}
END {print n}

只要 ed 前面有空格,无论是ed或education,如果该行包含muted或fed,它都不会注册它们。我以为/.*ed/会纠正这个但没有这样的运气。

2 个答案:

答案 0 :(得分:3)

或者只需使用grep -c选项来计算出现次数:

grep -c ed file
4

答案 1 :(得分:2)

只需删除BEGIN {RS=FS}就可以了。

cat file

ed
education
not here
covered
fed
not here

awk '/ed/ {n++} END {print n}' file
4

$0~/ed//ed/相同。它将搜索该行,如果找到任何ed则递增计数器 因此,在我的示例中,找到了4 ed