如何将cut命令与算术比较相结合

时间:2014-07-04 04:57:01

标签: shell awk cut

早上好,

我有一个名为test.txt

的文件
audit.log.20140612:6/11/14 6:27:33 AM;SUCCESS;998ms;10.62.172.52;52750;Issue
audit.log.20140612:6/11/14 6:28:25 AM;SUCCESS;580ms;10.62.172.52;52750;Issue;
audit.log.20140612:6/11/14 6:28:25 AM;SUCCESS;500ms;10.62.172.52;52750;Issue;
audit.log.20140612:6/11/14 6:28:25 AM;SUCCESS;58ms;10.62.172.52;52750;Issue;

现在我想提取超过100毫秒(毫秒)的所有行。

我实现了直到获得第3个字段形式的命令,

cut -d ';' -f 3 test.txt

现在我想将此结果传递给某些shell命令,以便我可以比较结果。 time is > 100ms

的位置

最后我的输出应该是,

audit.log.20140612:6/11/14 6:27:33 AM;SUCCESS;998ms;10.62.172.52;52750;Issue
audit.log.20140612:6/11/14 6:28:25 AM;SUCCESS;580ms;10.62.172.52;52750;Issue;
audit.log.20140612:6/11/14 6:28:25 AM;SUCCESS;500ms;10.62.172.52;52750;Issue;

1 个答案:

答案 0 :(得分:6)

使用awk

awk -F';' '$3+0 > 100' yourfile

使用bash

#!/bin/bash                                      
while read line; do 
        fields=(${line//;/ });
        t=${fields[4]}; 
        if [ ${t%ms} -gt 100 ]; 
        then 
                echo "$line"; 
        fi; 
done< yourfile