如何计算每行的平均值(awk 命令)
How to calculate average per row (awk command)
我有一个包含 269 个国家/地区的文件。
每个国家 10 列。
我需要创建一个脚本,从 5-10 列平均计算日本并将平均值保存在新文件中
像 :
日本,JPN,森林面积(占土地面积的百分比)=“(平均数)”。
我的文件是。 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( ==country ) { n=0; for(i=5;i<NF;++i) { if( $i ) { ++n; sum += $i; } } print country ": " sum/n; }}' infile.txt
变量country
可以随意设置。从6到end的字段求和除以条目数得到avarage。
我有一个包含 269 个国家/地区的文件。 每个国家 10 列。 我需要创建一个脚本,从 5-10 列平均计算日本并将平均值保存在新文件中 像 : 日本,JPN,森林面积(占土地面积的百分比)=“(平均数)”。
我的文件是。 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( ==country ) { n=0; for(i=5;i<NF;++i) { if( $i ) { ++n; sum += $i; } } print country ": " sum/n; }}' infile.txt
变量country
可以随意设置。从6到end的字段求和除以条目数得到avarage。