我有一个文件有多行和各种内容。某些行以特定的模式开始,这可能会再次出现。E、 g
some line
some line
this: idA001 text
this: idA002 text
some line
this: idB001 text
this: idA001 text
this: idA002 text
this: idC001 text
...
我想计算第一次出现的this: id*
。。在
如果我使用cat file | grep "this: " | wc -l
我计算每一次发生的次数。。我是否需要编写一个脚本,先对行进行筛选,然后消除重复项,还是在一行bash命令中可以这样做?
如果需要脚本,我更喜欢Python或Bash。。在
我们可以这样做
如果您想在bash one liner中执行此操作:
^{} 命令删除重复的行。在
但是我们想过滤掉不一定相邻的重复行,所以我们首先^{} 。在
其余的命令与原始命令相同。在
对于较新的*nix系统(我认为它包括您可能关心的任何系统),您可以将}调用组合成一个} 输出匹配行的计数而不是匹配的行,因此您不需要
^{pr2}$sort
和{sort -u
。另外,正如jm666所指出的,^{wc
。所以事情就变成了:最后一件事:如果您只想要以
this:
开头的行,而不是在任何地方包含它的行,那么可以在grep表达式中使用^
特殊字符,它只匹配行的开头,如下所示:这应该做到:
它将计算以
this:
开头的唯一行数相关问题 更多 >
编程相关推荐