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

Unix head/tail a percentage of lines to an output file

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

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

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

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

awk 存储和计数 ( a[i++]=[=14=] ) 由 sort 传输的记录,在此过程之后,在 END 部分它将打印记录直到 10已达到 %:j<=i/10