grep e multiplique certas colunas

1

Em um arquivo, tenho uma certa construção:

------------------------------
|  1   123.456    789.1011 T |
|  2   789.123    234.1234 T |
------------------------------
 All true

Eu posso

grep -s -B 3 "All true" file.out | head -n 2

para obter apenas as linhas relevantes

|  1   123.456    789.1011 T |
|  2   789.123    234.1234 T |

Como eu iria agora para obter os primeiros números ( 123.456 e 789.123 ) nas variáveis, mas multiplicado por um certo valor x

Existe uma maneira de obter o argumento n 'de uma linha grep ou algo assim?

    
por Fl.pf. 17.07.2017 / 10:07

2 respostas

1

Curta grep + abordagem awk :

Digamos que o multiplicador seja 3 :

grep -sB 3 "All true" file.out | awk -v x=3 '$1=="|"{ print $3*x }'

A saída:

370.368
2367.37
  • -v x=3 - passando o multiplicador como variável x para o script awk
por 17.07.2017 / 10:52
1

Crédito para o @Philippos, consegui a resposta:

number=$(grep -s -B 3 "All true" file.out | head -n 2 | cut -d' ' -f6 )

for i in ${number}
do
  echo "$i*$x" | bc -l
done
    
por 17.07.2017 / 10:28