次のCSVファイルがあります。
Row 1,1,4.50,
Row 2,8,0.30,
Row 3,14,0.30,
Row 4,2,2.50,
Row 5,20,0.30,
2番目の列と3番目の列を掛け、結果を4番目の列に追加したいと思います。
この単純なawkコマンドを取得しました。
awk -F',' '{print $1 "," $2 "," $3 "," $2 * $3}' file
私は得る:
Row 1,1,4.50,4.5
Row 2,8,0.30,2.4
Row 3,14,0.30,4.2
Row 4,2,2.50,5
Row 5,20,0.30,6
[N.NN]のように最後のライブラリの出力形式を指定する方法はありますか?
そのため、次のように出力されます。
Row 1,1,4.50,4.50
Row 2,8,0.30,2.40
Row 3,14,0.30,4.20
Row 4,2,2.50,5.00
Row 5,20,0.30,6.00
答え1
printf
たとえば、またはを使用してsprintf
出力形式を指定できます。
$ awk -F, '{printf "%s%.2f\n", $0, $2*$3}' file
Row 1,1,4.50,4.50
Row 2,8,0.30,2.40
Row 3,14,0.30,4.20
Row 4,2,2.50,5.00
Row 5,20,0.30,6.00
または
$ awk -F, '{print $0 sprintf("%.2f", $2*$3)}' file
Row 1,1,4.50,4.50
Row 2,8,0.30,2.40
Row 3,14,0.30,4.20
Row 4,2,2.50,5.00
Row 5,20,0.30,6.00