有一种简单的方法用bash计算分位数吗?

idr*_*sid 2 bash shell statistics quantile

假设我有来自Web服务器的日志文件,每个请求的响应时间:

_1st_request 1334
_2nd_request 345
_3rd_request 244
_4th_request 648
......... etc
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法用bash脚本来找到最高十分位数(10- 分位数)?换句话说回答这个问题:如果我排除最慢的10%请求,那么最慢的请求有多慢?

Jon*_*ehl 5

awk '{print $2}' | sort -rn | perl -e '$d=.1;@l=<>;print $l[int($d*$#l)]'
Run Code Online (Sandbox Code Playgroud)

在perl中完成整个事情确实会更优雅.如果要使用临时文件,可以使用wc + head/tail从排序的数字列表中选择分位数.