계산을 위해 ","를 제거하고 awk를 사용하여 다시 추가하세요.

계산을 위해 ","를 제거하고 awk를 사용하여 다시 추가하세요.

파일이 있어요

January 124,567.89
Feburary        234,567.78
March   349,123.77
April   112,248.00
May     107,345.22
June    180,670.23
July    122,457.03
August  345,789.99
September       234,567.90
October 145,890.95
Novemeber       245,789.76
December        111,890.22

나는 awk 함수를 다음과 같이 작성했습니다.

{


removecommas()
}
function removecommas(total)

{
gsub(",","",$2)

total+=$2
return total
}


function addcommas()

{
total=removecommas(total)

return sub(/[1-9]{3}/,"&,") total

}

END{
print addcommas()
}
~

값을 추가하고 싶지만 $2그 전에 다음을 수행하고 싶습니다.

  • 쉼표 제거
  • 인쇄하기 전에 쉼표를 추가하여 전체 결과를 인쇄하세요.

나는 붙어있다 :-

  • 한 함수의 결과를 다른 함수에 전달하는 방법은 무엇입니까?
  • sub function다른 함수에서 실행하려면 어떻게 해야 하나요?

감사해요

답변1

직접적인 답변은 아니지만 영감을 받았습니다.awk의 천 단위 구분 기호

function addcommas()
{
removecommas(total)
return sprintf ("%'.2f",total) ;
}

아니면 좀 더 직접적인 방법

function  addcommas()
{
t2 = total ;
sub(/[1-9]{3}/,"&,",t2) ;
return t2 ;
}

나는 awk가 sub() arg.applies 또는 .applies sub와 같은 $0세 번째 매개변수를 허용하지 않을 것이라고 생각합니다.

관련 정보