Shell Grep用于在单个文件中显示多个字符串的计数

Shell Grep用于在单个文件中显示多个字符串的计数,shell,unix,grep,Shell,Unix,Grep,另一个问题。。。我可以获得唯一项目的计数吗。。如果在我之前的案例中,我只是举了一个简单的例子。我的业务需求在这里… 我有下面这样的字符串happy=7 快乐=5 快乐=5, 基本上,我将使用正则表达式搜索单词happy,我会给出“happy=*”。。。我需要输出为“countofhappy=2”,因为有一个重复的实例 使用awk: awk '/happy/{ happy+=1 } /sad/ {sad += 1 } END { print "happy =", happy+0, "sa

另一个问题。。。我可以获得唯一项目的计数吗。。如果在我之前的案例中,我只是举了一个简单的例子。我的业务需求在这里…
我有下面这样的字符串happy=7
快乐=5 快乐=5, 基本上,我将使用正则表达式搜索单词happy,我会给出“happy=*”。。。我需要输出为“countofhappy=2”,因为有一个重复的实例

使用awk:

awk '/happy/{ happy+=1 } /sad/ {sad += 1 } 
    END { print "happy =", happy+0, "sad = ", sad+0 }'

请注意,与
grep-c
一样,这并不计算每个单词的出现次数,而是计算与每个单词匹配的行数。

您最好使用perl或awk之类的工具,您可以根据条件语句递增计数器。

另一个问题。。。我可以获得唯一项目的计数吗。。如果在我之前的案例中,我只是举了一个简单的例子。我的生意在这里。。。我有下面这样的字符串happy=7 happy=5 happy=5,基本上我将使用正则表达式搜索单词happy,我会给出像“happy=*”。。。我需要输出为“countofhappy=2”,因为有一个重复的实例。。。我已经编辑了这些问题。。请看清楚图片这没有意义。如果您的输入是
h=5\nh=5\nh=7\nh=7\nh=7\ns=1\n
,您希望输出
h=2\ns=1\n
h=3\ns=1\n
,还是
h=2\n
h=3\n
?另外,您的字符串都在一行,每个数据点在一行,还是混合?您最初提到使用
grep
,这意味着使用面向行的数据,但现在没有提到grep。