【发布时间】:2015-07-08 01:38:11
【问题描述】:
我有以下 awk 命令。我正在尝试查找错误并打印错误的第一行。如果错误具有匹配的字符串,那么我会尝试将其添加到计数中,然后在 END 语句中打印结果。
如何将 if 条件用于我对以下语句的要求,并打印错误的出现次数?
awk '/^SomeError[0-9]+/ {for(i=0;i<=3;i++){getline;if(i==0 && $1 ~ /PATTERN_TO_FIND/ ){print;count++;}}} END {print count;}' SomeLogfile.log.2015-07-06 | less
今天,如果我将 if 条件与以下正则表达式一起使用,它不会打印任何内容。如果我从包含 he end 语句的命令中删除它,它会打印结果,但我想将此条件用于计数目的并打印。
$1 ~ /PATTERN_TO_FIND/
【问题讨论】:
-
for(i=0;i<=3;i++)的用途是什么?你只对i==0?的情况感兴趣 -
@NathanWilson 我还在学习。我之前打印了前 3 行。现在我只对第一行感兴趣。
-
你能放一个输入文件的样本吗?我假设包含搜索条件的行与实际错误不在同一行?