我有一个文件
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
.sub
适用于$0
或第三个参数。