计算单行solaris中的匹配出现次数

时间:2018-09-23 06:08:34

标签: shell unix scripting solaris sunos

任何用于匹配字符串的grep便捷命令,当存在一个很长的字符串(单行)时,计算出现的字符串数。

"grep -i something abc.txt | wc -l"在多行时工作正常,但是如果abc.txt在单行中出现多次,则无法计数。

PS:我已经阅读了有关此问题的多个链接,但是当我使用Sun OS时,没有一个对我有用。请注意Sun OS。

谢谢

3 个答案:

答案 0 :(得分:0)

awk怎么样:

$ cat file
something. something else
not that's something
$ awk 'i=gsub(/something/,"&"){c+=i}END{print c}' file
3

如果它是较长字符串(something.)的一部分,则将计数匹配,就像grep一样。

答案 1 :(得分:0)

您的grep是否支持选项-o?在这种情况下,您可以使用

grep -oi something abc.txt | wc -l

如果这不起作用。尝试类似的解决方法

sed 's/something/&\n/g' abc.txt | grep -ci "something"

答案 2 :(得分:0)

在Solaris 11上,使用/usr/gnu/bin/grep使使用-o选项可以在其他地方找到答案。