divide o segundo campo da n.ª linha de um arquivo

0

Eu tenho um arquivo como:

available_space:1232334343
capacity:123456432
total_space:1232323232

Eu quero calcular a capacidade / total_space, então preciso calcular     123456432/1232323232

Eu posso imaginar que preciso usar algo como:

cat my_file | awk -F:'FNR==2 {print$2}' 

Mas não é possível escrever a divisão em si, não tenho certeza da sintaxe. Então, como eu posso fazer isso?

    
por JavaRed 18.07.2017 / 22:24

2 respostas

1

De acordo com sua abordagem inicial, as linhas cruciais são apenas a segunda e a terceira linha:

awk -F':' 'NR==2{ c=$2 }NR==3{ print c/$2 }' my_file
0.100182
    
por 18.07.2017 / 22:48
0

Quando o primeiro campo é capacity , salve o valor do segundo campo em uma variável. Então, quando o primeiro campo for total_space , divida o valor da variável pelo segundo campo:

awk -F: '$1 == "capacity" {c = $2} $1 == "total_space" && c != 0 {print c/$2}' my_file
0.100182
    
por 18.07.2017 / 22:33