awk 实例

前面有一篇awk 的文章,但是例子太抽象,真正用到的时候想去照抄,发现抄来的完全用不了。完全背离了我写博客的原意。所以重新整理一篇,把我看《The AWK Programming Language》这本书上面的例子都摘录下来,下次码字的时候,能够copy-paste 过来就能跑不报错,真是应了高中语文老师的一句话:天下文章一大抄,看你会抄不会抄。

# 注释
awk 'pattern {action}'
awk '!($3 > 0 || $1 == 0) {print $1, $2*$3}' file.txt 
# 按条件过滤( >, <, ==, !=, >=, <= ),数值计算。print $0 打印所有字段
# && 逻辑与  || 逻辑或  !逻辑非
{ printf("total pay for %s is $%.2f\n", $1, $2 * $3) } # 格式化输出 %s->字符串,%.2f->两位小数
{ printf("%-8s $%6.2f\n", $1, $2 * $3) } # %-8s->8位宽度字符串,不够用空格填满。%6.2f->小数点后面两位,总宽度为6位浮点数
# 流程控制
{if ($1 * $2 > 1) print $0}
{i = 1; while (i <= $3) {printf("\t %s", $1); i = i+1;}}
{for (i ; 1; i <; $3; i i + 1) printf("\t%.2f\n", $1 * (1 + $2)) }
ps aux | awk 'NR!=1 BEGIN{...} {a[$1]+=$6} END {for(i in a) print i, a[i]}' # 字段名做下标,遍历打印

进度:29/225

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值