ファイルのn行目の2番目のフィールドを分割します。

ファイルのn行目の2番目のフィールドを分割します。

次のファイルがあります。

available_space:1232334343
capacity:123456432
total_space:1232323232

容量/total_spaceを計算したいので、123456432/1232323232を計算する必要があります。

次のようなものを使用する必要があると想像できます。

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

しかし、除算自体を書くことはできず、構文がわかりません。ではどうすればいいですか?

答え1

元のアプローチによると、キー行は2行目と3行目のみです。

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

答え2

最初のフィールドがある場合は、capacity2番目のフィールドの値を変数に格納します。次に、最初のフィールドが次の場合、total_space変数の値を2番目のフィールドの値で除算します。

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

関連情報