在大型文本文件的某个百分位数中打印一行
Printing a line in a certain percentile of a larg text file
我正在寻找一个单行命令来打印一个大文本文件的某个百分位数的行。我的首选解决方案是基于 sed、wc -l、and/or head/tail 的东西,因为我已经知道如何使用 awk 和 wc -l 来做到这一点。为了更清楚,如果我的文件有 1K 行文本,我需要打印该文件的第 (95%*1K) 行。
head -`wc -l file | awk '{print(int(0.95*))}'` file | tail -n 1
在bash中:
head -`echo scale=0\;$(cat file|wc -l)\*95/100 | bc -l` file | tail -n 1
我正在寻找一个单行命令来打印一个大文本文件的某个百分位数的行。我的首选解决方案是基于 sed、wc -l、and/or head/tail 的东西,因为我已经知道如何使用 awk 和 wc -l 来做到这一点。为了更清楚,如果我的文件有 1K 行文本,我需要打印该文件的第 (95%*1K) 行。
head -`wc -l file | awk '{print(int(0.95*))}'` file | tail -n 1
在bash中:
head -`echo scale=0\;$(cat file|wc -l)\*95/100 | bc -l` file | tail -n 1