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
我正在使用 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