![AWK - 두 열을 곱하고 결과에 후행 0을 추가합니다.](https://linux55.com/image/158139/AWK%20-%20%EB%91%90%20%EC%97%B4%EC%9D%84%20%EA%B3%B1%ED%95%98%EA%B3%A0%20%EA%B2%B0%EA%B3%BC%EC%97%90%20%ED%9B%84%ED%96%89%200%EC%9D%84%20%EC%B6%94%EA%B0%80%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다음과 같은 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