使用AWK确定一个字符串包含多少行

使用AWK确定一个字符串包含多少行,awk,Awk,我正在尝试使用AWK来确定文件中有多少行包含字符串 BEGIN {RS=FS} {if ($0 ~ /ed/) n++} END {print n} 只要ed前面有空格,就可以正常工作,不管后面是什么,例如ed或education,但如果行中包含Mute或fed,则不会注册它们。我原以为/*ed/会纠正这一点,但运气不好。只要删除BEGIN{RS=FS},你就会没事了 cat文件 ed education not here covered fed not here $0~/ed/是相同的

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

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

只要ed前面有空格,就可以正常工作,不管后面是什么,例如ed或education,但如果行中包含Mute或fed,则不会注册它们。我原以为/*ed/会纠正这一点,但运气不好。

只要删除
BEGIN{RS=FS}
,你就会没事了

cat文件

ed
education
not here
covered
fed
not here
$0~/ed/
是相同的
/ed/
。它将搜索该行,如果找到任何
ed
,则增加计数器。

因此,在我的示例中,找到了
4
ed

只要删除
BEGIN{RS=FS}
,就可以了

cat文件

ed
education
not here
covered
fed
not here
$0~/ed/
是相同的
/ed/
。它将搜索该行,如果找到任何
ed
,则增加计数器。

因此,在我的示例中,可以找到
4
ed

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

grep -c ed file
4

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

grep -c ed file
4

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