Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops awk评估和计算与sum的比较_Loops_Awk_Count - Fatal编程技术网

Loops awk评估和计算与sum的比较

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

我正试图找出正确的方法来完成这个与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 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