Awk 实用指南:从基础到高级应用
1. 处理格式异常的文件行
在处理文件时,可能会遇到文件中某些行的字段数量不符合预期的情况。例如,在vegetables文件中,如果部分数据录入错误,可能会出现字段数少于或多于三个的行,而之前的 Awk 脚本无法正确处理这些行。
为了解决这个问题,可以编写一个 Awk 脚本来读取文件,并显示那些字段数不等于三的行。具体脚本如下:
NF != 3 { printf "Line %d has %d fields\n", NR, NF }在这个脚本中,NF != 3是一个模式,用于选择那些字段数不等于三的行;NR表示当前行号,用于指示具体是哪些行出现了问题。
可以使用这个脚本来检查vegetables文件是否确实符合正确的格式,也可以尝试在其他自己拥有的文件上运行该脚本,观察结果。
2. 传递参数给 Awk 脚本
假设要编写一个名为price的 shell 脚本,该脚本接受一个参数,代表蔬菜名称,并像之前一样查询vegetables文件,以显示购买该蔬菜的总价格。
一种解决方案是先让 Awk 计算所有蔬菜的总成本,然后使用 Grep 过滤出所需的单行输出:
awk '{ printf "%s %.