Awk 如何读取两个文件并从另一个文件字段中添加或减去字段中的余额

Awk 如何读取两个文件并从另一个文件字段中添加或减去字段中的余额,awk,Awk,文件1: Joes Garage Utility Muffin Research Kitchen Apple 文件2: Joes Garage $100.24 payment PipCo $20.13 due Utility Muffin Research Kitchen $2.44 due Uber $50.33 payment Microsoft $120.33 due App

文件1:

Joes Garage                             
Utility Muffin Research Kitchen         
Apple   
文件2:

Joes Garage $100.24 payment 
PipCo $20.13 due    
Utility Muffin Research Kitchen $2.44 due       
Uber $50.33 payment 
Microsoft $120.33 due   
Apple $220.33 payment
uber $40.44 payment
PipCo $40.99 payment
Apple $100.44 due
我只想打印从文件1中列出的企业名称中读取的数据,并计算它们的余额。 例如,一个企业可能有不同的交易。因此,仅使用一个余额打印该业务。
谢谢

免责声明:我不确定我是否正确解释了这个问题

这是一个作弊的版本,它使用
sed
预先格式化
file2
,因此我们可以直接访问
awk
中的相关字段。如果只想使用
awk
完成所有工作,可能需要使用某种循环和/或
split

$ cat t.awk
#!/usr/bin/awk -f

BEGIN { FS=":" }
NR==FNR {
        switch($3) {
            case "payment":
                balance[$1] += $2
                break
            case "due":
                balance[$1] -= $2
                break
        }
        next
    }
{
    if ($0 in balance)
        printf "%s %s$%0.2f\n",
            $0,
            balance[$0] >= 0 ? "" : "-",
            sqrt(balance[$0]*balance[$0])
}


$./t.awk预期输出?这是家庭作业吗?
$ ./t.awk <(sed -e 's# \$#:#' -e 's#[[:digit:]] #:#' file2.txt) file1.txt
Joes Garage $100.20
Utility Muffin Research Kitchen -$2.40
Apple $119.90