有一种简单的方法来计算使用bash位数?
-
19-09-2019 - |
题
可以说我有从网络服务器日志文件与每个请求的响应时间:
_1st_request 1334
_2nd_request 345
_3rd_request 244
_4th_request 648
......... etc
是否有使用bash脚本一种简单的方法来找到顶端等分(10- 位数 )?在其他的话来回答这个问题:如何慢最慢的请求,如果我排除请求中最慢的10%
解决方案
awk '{print $2}' | sort -rn | perl -e '$d=.1;@l=<>;print $l[int($d*$#l)]'
这确实是更优雅做整个事情在Perl。如果你想使用一个临时文件,你可以使用WC +头/尾,从数字的排序列表中选择位数。
其他提示
我可能排序数值由请求字段计数线和抓住从端是10%的线。
FILE=responseTimes.log
TMPFILE=tmpfile
sort -k 2 -n $FILE > $TMPFILE
LINECOUNT=`wc -l $TMPFILE | sed -e 's/^ *//' -e 's/ .*$//'`
TARGETLINE=echo "$LINECOUNT * 9 / 10" | bc
sed -n "$TARGETLINE{p;q;}" $TMPFILE
希望这就是你要找的人。
不隶属于 StackOverflow