【发布时间】:2021-11-09 06:10:52
【问题描述】:
我从awk开始,不知道如果满足某个条件,如何计算百分比。
这是我正在使用的文件:
user,gender,age,native_lang,other_lang
0,M,19,finnish,english swedish german
1,M,30,urdu,english
2,F,26,finnish,english swedish german
3,M,20,finnish,english french swedish
4,F,20,finnish,english swedish
5,F,29,finnish,english
6,F,23,swedish,finnish english
7,F,19,swedish,finnish english french
8,F,25,finnish,english swedish german russian french estonian
我想根据条件计算百分比:
-
native_lang= '芬兰语' -
other_lang= '瑞典语'
我写的脚本如下:
awk -F ',' {$4~/finnish/ && $5~/swedish/}END{for (i in a)}
给定这些行的预期输出应该是44.44%
我找不到将“+1”添加到计算总数的变量的方法。
怎么可能?
谢谢
【问题讨论】:
-
确保包括名称是其他语言的子字符串的语言,因为这是一个测试用例,许多脚本(如您问题中的脚本)可能会失败,例如
Romani与Romanian或Russian与Prussian)。某些语言也是多个单词(例如West Frisian或Old Prussian),因此如果您不允许在数据中使用这些单词,请同时显示这些单词在您的日期或状态中的表示方式。 -
什么是
a?您从未向数组中添加任何内容。 -
为什么找不到给变量加 1 的方法?只需使用
variable++。 -
我预计 55.55% -- 记录 0、2、3、4、8 符合条件。
-
我建议阅读 awk 信息页面以更好地了解该语言的语法:stackoverflow.com/tags/awk/info
标签: awk