27、探索 Awk:从报表生成到调试与限制

探索 Awk:从报表生成到调试与限制

1. 生成列报表

在小型商业应用中,我们可以使用 Awk 来生成带有美元金额的报表,这充分展现了 Awk 的数据处理和报表生成能力。

假设存在一个数据录入脚本,它有两个主要任务:一是录入客户的姓名和邮寄地址,用于后续构建邮寄列表;二是记录客户对七种商品的订单信息,包括商品编号、订购数量和单价。这些数据会分别写入不同的文件。

以下是客户订单文件中的两条示例记录:

Charlotte Webb 
P.O  N61331 97 Y 045    Date: 03/14/97
#1 3  7.50
#2 3  7.50
#3 1  7.50
#4 1  7.50
#7 1  7.50 

Martin S. Rossi 
P.O  NONE       Date: 03/14/97
#1 2  7.50
#2 5  6.75

每个订单可能占据多行,订单之间用空行分隔。前两行提供客户姓名、采购订单编号和订单日期,后续每行则记录商品编号、订购数量和单价。

我们可以编写一个简单的程序,将商品数量乘以单价:

awk '/^#/ {
                amount = $2 * $3
                printf "%s %6.2f\n", $0, amount
                next
         }
{ print }' $*

这个程序的主要逻辑是,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值