深入探索 Awk:功能、应用与实践
1. 处理异常字段数量的文件行
在处理文件时,可能会遇到数据录入错误,导致文件中的某些行包含的字段数量少于或多于预期。例如,在 vegetables 文件中,之前的 Awk 脚本无法正确处理包含非三个字段的行。为了解决这个问题,可以编写一个 Awk 脚本来读取文件,并显示那些包含非三个字段的行。
NF != 3 { printf "Line %d has %d fields\n", NR, NF }
使用这个脚本可以检查 vegetables 文件是否符合正确的格式,也可以在其他文件上进行测试,看看会有什么结果。
2. Awk 脚本的参数传递
假设要编写一个名为 price 的 shell 脚本,该脚本接受一个参数,表示蔬菜名称,并查询 vegetables 文件以显示该蔬菜的总价格。有两种解决方案:
- 方案一 :使用 Awk 计算所有蔬菜的总成本,然后使用 Grep 过滤出所需的行。
awk '{ printf "%s %.2f\n", $1, $2*$3 }' vegetables | grep $1
- 方案二 :使用 Awk 的模式匹配,但需要注意避免使用错误的模式。例如,以下代码是错误的:
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



