【问题标题】:Unix head/tail a percentage of lines to an output fileUnix head/tail 输出文件的行数百分比
【发布时间】:2015-02-16 09:32:43
【问题描述】:

我正在使用 unix 读取 excel 文件,按一列排序,然后我想要导出到新 .xls 文件的已排序行的百分比(比如说前 10%)。我有下面的代码可以正常工作,但我需要在此行之前执行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

【问题讨论】:

    标签: unix lines percentage head tail


    【解决方案1】:

    您可以将文件本身的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++]=$0) 由sort 传输的记录,在此过程之后,在END 部分它将打印记录直到达到 10%:j&lt;=i/10

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 1970-01-01
      • 2011-12-19
      • 2023-03-10
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多