Loops awk评估和计算与sum的比较
我正试图找出正确的方法来完成这个与awk(不太熟悉的awk),但我似乎无法得到它 基本上我有一个两列的文本文件。我想对第二列求和,然后将第二列的每个条目除以和,如果结果小于0.25,则增加一个计数器。为了做到这一点,我似乎必须循环两次,一次得到总和,一次用总和计算每个条目。我怎样才能用一个班轮完成这件事Loops awk评估和计算与sum的比较,loops,awk,count,Loops,Awk,Count,我正试图找出正确的方法来完成这个与awk(不太熟悉的awk),但我似乎无法得到它 基本上我有一个两列的文本文件。我想对第二列求和,然后将第二列的每个条目除以和,如果结果小于0.25,则增加一个计数器。为了做到这一点,我似乎必须循环两次,一次得到总和,一次用总和计算每个条目。我怎样才能用一个班轮完成这件事 Example Input: 0 5 1 5 2 10 3 5 Example Output: 3 (the sum is 25 and three of the entries result
Example Input:
0 5
1 5
2 10
3 5
Example Output:
3 (the sum is 25 and three of the entries result in a value less than 0.25 when divided by 25)
我在bash中尝试这样做时遇到了麻烦,我意识到我需要使用awk来处理小数。我可以循环并获得总和,循环并对每个条目执行条件检查,但我不知道如何同时执行这两项操作。未测试:
awk'
{sum+=$2;行[NR]=$2}
结束{for(i=1;i使用awk
$ awk '{sum+=$2;a[NR]=$2}END{for (i in a) if (a[i]/sum<0.25) count++;print count}' file
$awk'{sum+=$2;a[NR]=$2}END{for(a中的i)if(a[i]/sum请提供一个示例输入和所需的输出,以及您遇到的问题。您可以将列的内容保存在一个数组中,然后在END
块中对其进行循环。这似乎非常有效,谢谢。一旦可用,我们将尽快接受。
$ awk '{sum+=$2;a[NR]=$2}END{for (i in a) if (a[i]/sum<0.25) count++;print count}' file