如何计算每行的平均值(awk 命令)



我有一个包含 269 个国家/地区的文件。 每个国家 10 列。我需要创建一个脚本,该脚本将从 5-10 列平均计算日本并将平均值保存在新文件中喜欢:日本,日本,森林面积(占土地面积的百分比(="(平均数量("。

我的文件是。Csv我不需要全国平均水平。我只想计算日本的平均值。

Jordan,JOR,Forest area (% of land area),AG.LND.FRST.ZS,1.0982203199,1.0982203199,1.0982203199,1.0982203199,1.0982203199,1.0982203199,,
Japan,JPN,Forest area (% of land area),AG.LND.FRST.ZS,68.4844328624,68.4791046618,68.4737766074,68.4693877551,68.4649989028,68.4606100505,,
Kazakhstan,KAZ,Forest area (% of land area),AG.LND.FRST.ZS,1.2256917435,1.2256917435,1.2256917435,1.2256917435,1.2256917435,1.2256917435,,

解决方案:

awk -v country=Japan 'BEGIN{FS=","}{ if( $1==country ) { n=0; for(i=5;i<NF;++i) { if( $i ) { ++n; sum += $i; } } print country ": " sum/n; }}' infile.txt

可变country可以根据需要设置。从 6 到结尾的字段相加并除以条目数以获得平均数。

最新更新