varias tiempo sumar suma restar resta mismo ejercicios cómo condicional como columnas celdas awk subtraction

awk - tiempo - Cómo restar un número constante de una columna



sumar y restar en excel al mismo tiempo (3)

¿Hay una manera de restar el valor más pequeño de todos los valores de una columna? Necesito restar el primer número de la primera columna de todos los demás números de la primera columna.

Escribí este script, pero no está dando el resultado correcto:

$ awk ''{$1 = $1 - 1280449530}'' file 1280449530 452 1280449531 2434 1280449531 2681 1280449531 2946 1280449531 1626 1280449532 3217 1280449532 4764 1280449532 4501 1280449532 3372 1280449533 4129 1280449533 6937 1280449533 6423 1280449533 4818 1280449534 4850 1280449534 8980 1280449534 8078 1280449534 6788 1280449535 5587 1280449535 10879 1280449535 9920 1280449535 8146 1280449536 6324 1280449536 12860 1280449536 11612


Estabas en el camino correcto:

awk ''{$1 = $1 - 1280449530; print}'' file

Aquí hay una versión simplificada del segundo ejemplo de Michael:

awk ''NR == 1 {origin = $1} {$1 = $1 - origin; print}'' file


Lo que tienes esencialmente funciona, simplemente no lo estás emitiendo. Esto producirá lo que quieras:

awk ''{print ($1 - 1280449530) " " $2}'' file

También puedes ser un poco más listo y no codificar la cantidad de turnos:

awk ''{ if(NR == 1) { shift = $1 } print ($1 - shift) " " $2 }'' file


script de shell bash

#!/bin/bash exec 4<"file" read col1 col2<&4 while read -r n1 n2 <&4 do echo $((n1-$col1)) # echo "scale=2;$n1 - $col1" | bc # dealing with decimals.. done exec >&4-