在所选单词之前显示几行

时间:2011-09-06 13:17:58

标签: sed awk grep

以下命令正确返回所有文件中警告大于0的所有行。

grep -i warning * | grep -v 'Warnings: 0' | more

我想看警告线以上的4行警告超过0. -B4开关因显而易见的原因无效。

3 个答案:

答案 0 :(得分:2)

如果我理解你的问题,这是一个解决方案:

grep -v "Warnings: 0" * | grep -B4 -i warning

答案 1 :(得分:1)

如何使用一点正则表达式:

grep -e "Warnings: [1-9][0-9]*" -B4 * | more

grep应该查找1个或更多警告并打印前4行。

答案 2 :(得分:0)

您不清楚警告消息是否应包含在输出中。 在这个版本中它是。

尝试:

awk -F"[: ]" '($1  /Warning/ && $2> 0){a[NR]=$0;for (i=4;i>=0;i--) \
            print a[NR-i]}{a[NR]=$0}' file

HTH Chris