大家早上好,
我有一个名为的文件 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)
用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)