Bash命令对在两个不同位置具有匹配子字符串的行进行计数

暗影斯特林

我试图在一些调试输出中获得一些琐碎的统计信息。

每条调试行的格式为(class name)(delimiter 1)(object ID)(delimiter 2)(method name)(delimiter 3)(log message)

我想统计一下来自哪些方法的行数。

本质上,如果每行都可以减少到(class name)(delimiter)(method name),我想知道在日志文件中出现了多少次减少。

我可以在Bash中运行什么命令进行计数?

(我是在macOS上用macports用GNU工具替换了大多数默认的BSD风格的工具。)

我可以用提取类名grep -o -E "^.*(delimiter 1),或用提取方法名grep -o -E "(delimiter 2).*(delimiter 3)",或者用突出显示两者grep --color=always -E "^.*(delimiter 1)|(delimiter 2).*(delimiter 3)"我一直在寻找一种方法来grep只输出两个匹配项,然后可以进行| uniq -c计数。

有没有一种方法可以grep打印每行的两个匹配项,而不是仅打印一个匹配项或整行?

暗影斯特林

从本质上讲,它可以用

sed -r -n 's/(^.*)(delimiter 1)(.*)(delimiter 2)(.*)(delimiter 3)(.+$)/\1(delimiter)\5/p' <( command that generates debug logs ) | sort | uniq -c | sort -rn

(从这里改编

  • .*可能匹配太多;sed是贪婪的,并且希望尽可能早地匹配,因此可能需要例如对定界符的取反(如果定界符不方便,可能会很复杂)
  • ^$很重要,如果您的表达式与整个行不匹配sed,则输出中将包含不匹配的部分
  • 只需在类名和方法名两边加上括号即可;删除其他表示最后更改数字,因为数字按顺序引用带括号的子表达式。(将它们全部包含在内,可以显示sed输出中发生的更多情况,例如,将end更改为/\1(delimiter)\5 -- \1\2\3\4\5\6\7/p
  • sort必须先运行,uniq -c因为uniq -c仅对连续相同行的运行进行计数,非连续相同行将获得单独的计数
  • uniq -c不能被替换,sort -u因为sort -u仅丢弃重复项不计入重复项
  • 最后sort不一定要回答所问的问题
  • 是的,如果您使用正则表达式解决问题,那么现在您将遇到两个问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将相同字符放在字符串的两个不同位置

来自分类Dev

正则表达式模式要求在不同位置使用两个特定的字符串之一

来自分类Dev

找到具有两个差异的对应字符串的同位素,完全预定义

来自分类Dev

使用flask上传两个具有不同位置的文件

来自分类Dev

MySQL对具有两个重复列值的行进行计数

来自分类Dev

页面上两个不同位置的两个文本html文本输入,具有相同的提交ID

来自分类Dev

匹配字符串中具有两个或多个<br>元素的HTML元素

来自分类Dev

同时提取具有两个匹配字符串的文件

来自分类Dev

python中具有相同值的两个不同的字符串对象

来自分类Dev

如何附加两个具有不同字体的属性字符串?

来自分类Dev

Python:比较具有两个不同列表长度的列表中的字符串

来自分类Dev

比较 Ruby on Rails 中具有相同部分的两个不同字符串

来自分类Dev

两个文本视图中具有不同值的分隔逗号的字符串的逻辑

来自分类Dev

在两个不同的数据集中对字符串进行部分匹配以获得更高频率的匹配

来自分类Dev

sed:在所有匹配项上匹配两个不同的连续匹配之间的字符串

来自分类Dev

gitattributes:匹配两个几乎具有相同名称的文件,只是在附加的固定字符串中有所不同

来自分类Dev

两个不同的(?)字符串

来自分类Dev

两个字段的MySQL通配符匹配子字符串

来自分类Dev

我需要使用if命令将两个不同的行与两个或多个字符串进行比较

来自分类Dev

在正则表达式中查找具有相同字符串的两个匹配项

来自分类Dev

可以根据条件正则表达式在字符串的不同位置匹配字符串中不同位置的一个字段吗?

来自分类Dev

在两个索引不同的字符串中找到匹配的字符

来自分类Dev

如何为一个类创建两个构造函数,两个构造函数都具有字符串,string,但它们的用途不同?

来自分类Dev

从两个不同位置进行编织时,在Rmarkdown中使用相对路径

来自分类Dev

从两个不同位置进行编织时,在Rmarkdown中使用相对路径

来自分类Dev

您能否对模型中的两个不同位置进行geocode_by?

来自分类Dev

将文件名与提供的模式进行比较,或者比较两个具有通配符的字符串

来自分类Dev

在Python中匹配两个逗号分隔的字符串并正确计算位置数

来自分类Dev

Powershell-多行搜索,找到两个不同的字符串,仅返回匹配的行

Related 相关文章

  1. 1

    将相同字符放在字符串的两个不同位置

  2. 2

    正则表达式模式要求在不同位置使用两个特定的字符串之一

  3. 3

    找到具有两个差异的对应字符串的同位素,完全预定义

  4. 4

    使用flask上传两个具有不同位置的文件

  5. 5

    MySQL对具有两个重复列值的行进行计数

  6. 6

    页面上两个不同位置的两个文本html文本输入,具有相同的提交ID

  7. 7

    匹配字符串中具有两个或多个<br>元素的HTML元素

  8. 8

    同时提取具有两个匹配字符串的文件

  9. 9

    python中具有相同值的两个不同的字符串对象

  10. 10

    如何附加两个具有不同字体的属性字符串?

  11. 11

    Python:比较具有两个不同列表长度的列表中的字符串

  12. 12

    比较 Ruby on Rails 中具有相同部分的两个不同字符串

  13. 13

    两个文本视图中具有不同值的分隔逗号的字符串的逻辑

  14. 14

    在两个不同的数据集中对字符串进行部分匹配以获得更高频率的匹配

  15. 15

    sed:在所有匹配项上匹配两个不同的连续匹配之间的字符串

  16. 16

    gitattributes:匹配两个几乎具有相同名称的文件,只是在附加的固定字符串中有所不同

  17. 17

    两个不同的(?)字符串

  18. 18

    两个字段的MySQL通配符匹配子字符串

  19. 19

    我需要使用if命令将两个不同的行与两个或多个字符串进行比较

  20. 20

    在正则表达式中查找具有相同字符串的两个匹配项

  21. 21

    可以根据条件正则表达式在字符串的不同位置匹配字符串中不同位置的一个字段吗?

  22. 22

    在两个索引不同的字符串中找到匹配的字符

  23. 23

    如何为一个类创建两个构造函数,两个构造函数都具有字符串,string,但它们的用途不同?

  24. 24

    从两个不同位置进行编织时,在Rmarkdown中使用相对路径

  25. 25

    从两个不同位置进行编织时,在Rmarkdown中使用相对路径

  26. 26

    您能否对模型中的两个不同位置进行geocode_by?

  27. 27

    将文件名与提供的模式进行比较,或者比较两个具有通配符的字符串

  28. 28

    在Python中匹配两个逗号分隔的字符串并正确计算位置数

  29. 29

    Powershell-多行搜索,找到两个不同的字符串,仅返回匹配的行

热门标签

归档