我在尝试根据整数值grep
(过滤)日志文件时遇到问题。
日志文件.log:
2014-11-16 21:22:15 8 10.133.23.9 PROXIED ...
2014-11-16 21:22:15 1 163.104.40.133 authentication_failed DENIED ...
2014-11-16 21:22:15 15 163.104.40.134 authentication_failed DENIED ...
2014-11-16 21:22:16 9 163.104.124.209 PROXIED ...
我在第 3 列中有一个整数:8
、1
、15
、9
。
只有在以下情况下我才需要 grep:value > 10
。
类似于:
cat logfile.log | grep {$2>10}
2014-11-16 21:22:15 15 163.104.40.134 authentication_failed DENIED ...
最佳答案
这应该可以!
$ awk '$3>10' file
2014-11-16 21:22:15 15 163.104.40.134 authentication_failed DENIED ...
使用 $3
我们引用第三个字段,因此 $3>10
表示:第三个字段大于 10 的行。如果完成,则条件为真因此 awk
执行其默认行为:打印该行。
你当然可以说:只打印一个特定的字段,例如,你可以说 awk '$3>10 {print $1}' file
。
关于bash - 如何在 bash 中过滤列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27022025/