我需要一个 grep 命令的帮助:
grep match-word tomcat-0.log.* | grep "TOMCAT BENCH" | grep -v Normal
当前输出类似于:
tomcat-0.log:TOMCAT BENCH: match_word random-text 1420 elapsed Thu 2016-09-22 06:31:04:928 PDT <SessionID: id> <RequestID: reqId>
我想修改它以仅显示那些经过值大于 3000
之类的数字的行
单词 elapsed
始终存在,数字是单词 before elapsed
。
能否请您修改 grep
命令以过滤前一个单词并将其与数字进行比较?
最佳答案
使用 gnu awk 这可以在一个命令中完成:
awk '/TOMCAT BENCH/ && !/Normal/ && match($0, / ([0-9]+) elapsed /, a) && a[1] > 3000' tomcat-0.log.*
关于regex - grep 命令查找前一个小于数字的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645609/