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

run*_*run 1 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;
Run Code Online (Sandbox Code Playgroud)

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

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

cut -d ';' -f 3 test.txt
Run Code Online (Sandbox Code Playgroud)

现在我想将此结果传递给一些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;
Run Code Online (Sandbox Code Playgroud)

sat*_*sat 6

awk:

awk -F';' '$3+0 > 100' yourfile
Run Code Online (Sandbox Code Playgroud)

bash:

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