gpt4 book ai didi

linux - awk 语句生成额外的输出行;跳过空白输入行

转载 作者:太空宇宙 更新时间:2023-11-04 09:29:33 28 4
gpt4 key购买 nike

jon,doe          5        5      
sam,smith 10 5

我需要计算行和列的平均值。所以基本上输入文件包含名称 score1 和 score2 并且我需要从文件中读取内容然后计算平均行和列。我得到了想要的结果,但是由于空白,我得到了一个额外的 '0' 如果有人可以提供帮助,我将不胜感激。

awk 'BEGIN {print "name\tScore1\tScore2\tAverage"} {s+=$2} {k+=$3} {print $1,"\t",$2,"\t",$3,"\t",($2+$3)/2} END {print "Average", s/2,k/2}' input.txt

这是我得到的输出-

name           Score1  Score2   Average
jon,doe 5 5 5
sam,smith 10 5 7.5
0
Average 7.5 5

最佳答案

看起来您的输入文件中有一个额外的空行或空白(全是空白)行。

添加 NF==0 {next} 作为第一个模式 Action 对将跳过所有空行或空白行并给出所需的结果。

NF==0 仅当在输入行中未找到任何字段(数据)时才匹配。
next 语句跳过当前输入行(记录)的剩余语句并继续处理下一行(记录)。

awk 'BEGIN {print "name\tScore1\tScore2\tAverage"} NF==0 {next} {s+=$2} {k+=$3} {print $1,"\t",$2,"\t",$3,"\t",($2+$3)/2} END {print "Average", s/2,k/2}' input.txt

关于linux - awk 语句生成额外的输出行;跳过空白输入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060026/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com