Regex cli脚本搜索和计算文件中的单词

Regex cli脚本搜索和计算文件中的单词,regex,bash,sed,command-line-interface,Regex,Bash,Sed,Command Line Interface,我有一个字符串如下的文件 object-group network NAME1 object-group network OTHERNAME2 ..... object-group network OTHERNAME5 .... ... NAME1 ..... ..... OTHERNAME2 ... NAME1 ...... ....... 我想知道单词NAME1,OTHERNAME2。。。。OTHERNAME5组成文件。

我有一个字符串如下的文件

    object-group network NAME1
    object-group network OTHERNAME2
    .....
    object-group network OTHERNAME5
    ....
    ... NAME1 ..... 
    ..... OTHERNAME2 ... NAME1  ...... 
    .......
我想知道单词NAME1,OTHERNAME2。。。。OTHERNAME5组成文件。我不知道单词,但字符串从“对象组网络”开始


awk很乐意做这种工作:

awk '/^object-group network/{a[$3]++}END{for(x in a)print x,a[x]}' file
我举了一个例子来测试:

kent$  cat f
object-group network NAME1
object-group network NAME2
this line would be skipped NAME
object-group network NAME1
object-group network NAME2
object-group network NAME1
object-group network NAME3
object-group network NAME3
object-group network NAME2

kent$  awk '/^object-group network/{a[$3]++}END{for(x in a)print x,a[x]}' f
NAME1 3
NAME2 3
NAME3 2
新评论的更新:
awk'/^object group network/{a[$3]++;next}

{for(i=1;i您知道要检查出现情况的单词吗?这些单词是固定的还是动态的?如果是动态的,这些关键字的规则是什么?我不知道单词名称,但始终是lineobject group network中的第三个单词。示例输入中的一堆
只会将其弄乱并使其不稳定。请将它们清除并提供一些我们可以测试潜在解决方案的东西。这根本不是sed的工作(没有变量,因此无法计数),而是awk的工作,所以请标记您的问题。“对象组网络名称1”是唯一的,但名称1可以在文件下面的其他字符串中使用。@uatusa您知道吗,您给出了一个有许多“点”的示例,我不得不猜测,你有什么文本,你期望什么输出。在阅读了你在问题下的评论后,我得出了这个答案。因此,请给出一个输入和输出示例,可以清楚地描述你的需求,它可以节省大量的乒乓球!我添加了示例输入/输出
kent$  cat f
object-group network NAME1
object-group network NAME2
this line would be skipped NAME
object-group network NAME1
object-group network NAME2
object-group network NAME1
object-group network NAME3
object-group network NAME3
object-group network NAME2

kent$  awk '/^object-group network/{a[$3]++}END{for(x in a)print x,a[x]}' f
NAME1 3
NAME2 3
NAME3 2
awk '/^object-group network/{a[$3]++;next}
    {for(i=1;i<=NF;i++)if($i in a)a[$i]++}END{for(x in a)print x,a[x]}' file