我有一系列包含 2 行的文件。第一行包含一个整数 (1-100),而第二行包含一个小数 (1.0000-99.9999)。我需要获取第一行的总和和第二行的平均值,即:
awk '{sum += $1} {avg / $2} NEXT {print sum} END {print avg}' *log
例子:
1log
20
4.2
2log
34
1.2
输出结果如下:
54
2.7
答案1
使用 awk,使用FNR
变量来保存当前文件的记录号。
awk '
FNR==1 {sum1 += $1}
FNR==2 {sum2 += $1; count2++}
END {print sum1; print (sum2/count2)}
' 1log 2log
或者
paste 1log 2log | {
read n1 n2; echo $((n1+n2))
read n1 n2; bc <<< "($n1+$n2)/2"
}