Respuesta1
Hacer:
awk '{for (i=2;i<=NF;i++) sum[$1]+=$i-10} END{for (i in sum) \
print i, "Total =", sum[i]}' file.txt
{for (i=2;i<=NF;i++) sum[$1]+=$i-10}
itera sobre los campos y agrega crea una matrizsum
con el primer campo como clave y los valores del campo restados en 10 como valor(es)END{for (i in sum) print i, "Total =", sum[i]}
, imprime las claves y valores de la matriz en el formato de salida deseado
Ejemplo:
% cat file.txt
employee1 75 75 75 75 75 75 75
employee2 80 80 80 80 80 80 80
employee3 50 50 50 50 50 50 50
% awk '{for (i=2;i<=NF;i++) sum[$1]+=$i-10} END{for (i in sum) print i, "Total =", sum[i]}' file.txt
employee1 Total = 455
employee2 Total = 490
employee3 Total = 280
Respuesta2
La mayoría de los sistemas que tienen awk también tienen perl, que se superpone bastante pero que maneja este caso de manera más conveniente. Si lo tienes y solo hay una línea por empleado, simplemente
perl -nae '$e=shift @F; $t+=$_-10 for @F; print $e." Total= ".$t.$/' inputfile
Si hay (o puede haber) más de una línea para un empleado y @heemayl es correcto, desea que se agreguen a un total único por empleado.
perl -nae '$e=shift @F; $t{$e}+=$_-10 for @F;}{print $_." Total= ".$t{$_}.$/ for keys %t' inputfile