cronos@olimpo:~$ cat file.txt 1|11 2|22 3|33 4|44 5|55 | 6|66 7|77 8|88 9|99 cronos@olimpo:~$ cat file.txt | cut -d '|' -f 1 | grep -v '^$' | paste -sd '+' - | bc 45
Con cut seleccionas el campo a sumar, con grep deseleccionas campos vacíos, con paste agregas al final de cada línea un signo +, y con bc haces la suma.
Pero si tienes un archivo muy grande esto no va a funcionar; puedes mejor usar awk:
cronos@olimpo:~$ cat file.txt | awk 'BEGIN {FS="|";OFMT="%.2f"} {a+=$1;b+=$2} END {print "First field:",a,"Second field:",b}' First field: 45 Second field: 495
Con FS configuras el delimitador de campo y con OMFT configuras el formato del numero, en este caso dos decimales sin notación científica. Con awk un bonito extra es poder agregar dos o más columnas al mismo tiempo.
Más información:
Sum of numbers in file - UNIX alternatives
No hay comentarios.:
Publicar un comentario