是否可以使用awk进行打印?
输入
t1 t2 t3 t4 tn
l1 0 0.1448 0.2295 0.2896 0.3362
l3 0.1395 0.1395 0.1395 0.1395 0.4421
l4 0.5779 0.138 0.09591 0.05014 0.138
输出
t1 t2 t3 t4 tn max avg.of.rest
l1 0 0.1448 0.2295 0.2896 0.3362 0.3362 0.166
l3 0.1395 0.1395 0.1395 0.1395 0.4421 0.4421 0.140
l4 0.5779 0.138 0.09591 0.05014 0.138 0.5779 0.114
答案 0 :(得分:2)
$ cat tst.awk
BEGIN { OFS="\t"; OFMT="%.3f" }
NR==1 {
print $0, "max", "avg.of.rest"
next
}
{
max = $2
for (i=3;i<=NF;i++) {
max = ($i > max ? $i : max)
}
tot = cnt = 0
for (i=2;i<=NF;i++) {
if ($i != max) {
tot += $i
cnt++
}
}
print $0, max, (cnt?tot/cnt:0)
}
$ awk -f tst.awk file
t1 t2 t3 t4 tn max avg.of.rest
l1 0 0.1448 0.2295 0.2896 0.3362 0.3362 0.166
l3 0.1395 0.1395 0.1395 0.1395 0.4421 0.4421 0.140
l4 0.5779 0.138 0.09591 0.05014 0.138 0.5779 0.106