查找包含关键字和提取编号的所有行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找包含关键字和提取编号的所有行相关的知识,希望对你有一定的参考价值。

我想找到从单词开头的行:“ERRORS”并从该行中提取数字。

部分文件:

...
[ERROR] No keywords and test cases defined in file
File path: libraries_instances.robot

TEST SUITES SUMMARY:
ERRORS:        148
WARNINGS:      89
CS VIOLATIONS: 201

我的解决方案是:

grep ERRORS .validation.log | grep -o -E '[0-9]+'

有可能使它更好,只使用一个grep?

最后,我想在我的bash脚本中将该值赋给变量。

答案

由于linux标签存在问题,假设GNU grep-P选项可用

$ grep -oP 'ERRORS.*hKd+' .validation.log
148
  • ERRORS.*hK这里的K选项有助于标记正则表达式的起点..匹配到此点的字符串不会是输出的一部分
  • 还要注意man grep警告使用-P作为实验,但到目前为止我还没有遇到任何问题..(请参阅https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep了解已知的GNU grep问题)

使用awk的替代解决方案

$ awk '/ERRORS:/ && NF==2{print $NF}' .validation.log
148
  • /ERRORS:/ && NF==2匹配包含ERRORS:的行并且只有两个字段(默认情况下,一个或多个连续的空格是字段分隔符)
  • print $NF打印最后一个字段

以上是关于查找包含关键字和提取编号的所有行的主要内容,如果未能解决你的问题,请参考以下文章

如何创建片段以重复变量编号中的代码行

如何快速提取EXCEL中关键字相同的行,如查找包含100的行

excel如何提取所需关键字所在行?

linux 查找包含关键字的所有文件并删除该文件。

如何将ListView选中的item编号提取出来

Python Pandas 查找所有值为 NaN 的所有行