com awk
:
awk 'NR!=1{$0=$0" "$3*(1/$6)}1' file | sort -k8,8g
-
NR!=1
ignora a linha do cabeçalho. -
$0=$0" "$3*(1/$6)
: adiciona um oitavo campo com o resultado desejado. -
{...}1
1 é uma condição positiva, queawk
imprime a linha. -
sort -k8,8g
classifica o oitavo campo. - Além disso, adicione outro canal com
... | awk '{$8=""}1'
para remover esse campo novamente, se desejar.
Editar : em seu código na pergunta, vejo que você deseja um resultado positivo (se o valor em $3
for negativo, ele deverá ser -1/$7
). Apoiando isso, aqui meu comando mudou:
awk 'NR!=1{$0=$0" "sqrt(($3*(1/$6))^2)}1' file | sort -k8,8g
Eu fiz um pouco diferente; Eu fiz um quadrado e, em seguida, peguei a raiz do sqaure.