AWK - 두 열을 곱하고 결과에 후행 0을 추가합니다.

AWK - 두 열을 곱하고 결과에 후행 0을 추가합니다.

다음과 같은 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,

두 번째 열과 세 번째 열을 곱하고 그 결과를 네 번째 열에 추가하고 싶습니다.

이 간단한 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

관련 정보