划分文件第 n 行的第二个字段

划分文件第 n 行的第二个字段

我有一个像这样的文件:

available_space:1232334343
capacity:123456432
total_space:1232323232

我想计算容量/total_space所以我需要计算123456432/1232323232

我可以想象我需要使用类似的东西:

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

但无法编写除法本身,我不确定语法。那么我怎样才能做到这一点呢?

答案1

根据您最初的方法,关键行仅是第二行和第三行:

awk -F':' 'NR==2{ c=$2 }NR==3{ print c/$2 }' my_file
0.100182

答案2

当第一个字段为 时capacity,将第二个字段的值保存到变量中。然后,当第一个字段为 时total_space,将变量的值除以第二个字段的值:

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

相关内容