【发布时间】:2017-07-21 10:36:06
【问题描述】:
我正在寻找一个单行命令来打印大文本文件的某个百分位数中的一行。我的首选解决方案是基于 sed、wc -l 和/或 head/tail 的解决方案,因为我已经知道如何使用 awk 和 wc -l 来做到这一点。为了更清楚,如果我的文件有 1K 行文本,我需要打印例如该文件的第 (95%*1K) 行。
【问题讨论】:
我正在寻找一个单行命令来打印大文本文件的某个百分位数中的一行。我的首选解决方案是基于 sed、wc -l 和/或 head/tail 的解决方案,因为我已经知道如何使用 awk 和 wc -l 来做到这一点。为了更清楚,如果我的文件有 1K 行文本,我需要打印例如该文件的第 (95%*1K) 行。
【问题讨论】:
在 bash 中:
head -`echo scale=0\;$(cat file|wc -l)\*95/100 | bc -l` file | tail -n 1
【讨论】:
head -`wc -l file | awk '{print(int(0.95*$1))}'` file | tail -n 1
【讨论】: