Unix head / tail输出文件的一定百分比的行

时间:2015-02-16 09:32:43

标签: unix lines percentage head tail

我正在使用unix读取excel文件,按一列排序,然后我想要一个百分比(比如前10%)导出到新的.xls文件的排序行。我有下面的代码工作正常,但我需要在此行之前做一个wc -l得到“126”,然后必须输入(这是一个麻烦,因为我想要连续过滤) 。

cat /Desktop/Results.xls | sort -n -k 3 | awk -F "[\t]" '{printf "%s\n",$0}' | head -$((126*1/10)) >./Results_0167_1.xls

1 个答案:

答案 0 :(得分:0)

您可以将awk修改为head文件本身:

sort -n -k 3 /Desktop/Results.xls| awk '{a[i++]=$0}END{for (j=1;j<=i/10;j++){printf "%s\n",a[j]}}' >./Results_0167_1.xls

awk存储和计算(a[i++]=$0sort管道传输的记录,在此过程之后,在END部分,它将打印回复,直到10%为达到:j<=i/10