awk 命令使用笔记

awk ‘{print $1”补充字段"}’
默认以空格或tab分割,$0代表整行,$1代表分割后的第一个单词,以此类推,上面例子会打印出分隔符后第一个单词和“补充字段”。
 
 
awk -F : ‘/关键字/’ ./filename
eg:awk -F: '/update/'  ./ids.sql
 
这里 -F 代表以什么符号分割,//中间是关键字 用来获取有这个关键字的行。
 
 
awk -F ‘分隔符’ BEGIN {print “列名1,列名2”} END {print “补充字段,补充字段”}’
eg:cat ids.sql | awk -F 'company_id' 'BEGIN {print "name,shell"} {print $1","$2} END {print "blue,/bin/nosh”}’
这里BEGIN END 是指会按顺序执行awk 语句,注意这里 BEGIN 和 END 要大写,否则无效
 
 
awk '{printf "select * from %s where id = %s;\n", $2, $6}'
eg: cat ids.sql | awk '{printf "select * from %s where id = %s;\n", $2, $6}’
printf 比 print更整洁
 
 
awk编程
cat ids.sql | awk 'BEGIN {count=0; print "count is ", count} {count += 1;} END {print "end count is ", count}’
循环获取总行数,count初始化为0,并打印出来
    ls -l | awk ' BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}
    统计某个文件夹下的文件占用的字节数
 
 
awk 使用for循环打印数组,将每行的某个值作为数组中的一个元素,end时遍历数组打印数组序列号和数组元素值。
awk -F 'id=' 'BEGIN {count=0;} {name[count]=$3; count++;} END {for(i = 0; i<10; i++) print i, name[i]}'
eg:cat ids.sql | awk -F 'id=' 'BEGIN {count=0;} {name[count]=$3; count++;} END {for(i = 0; i<10; i++) print i, name[i]}'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值