早上好,
我有一个名为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;
答案 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