awk常见测试笔试面试

7 篇文章 0 订阅
6 篇文章 0 订阅

创建测试文件如下:

#创建测试文件
for i in `ls ../`;do echo  $i,2,3,4,5 >>input;done
input内容:

a+b.sh,2,3,4,5
awk,2,3,4,5
case.sh,2,3,4,5
for.sh,2,3,4,5
grep.all,2,3,4,5
if.sh,2,3,4,5
param.sh,2,3,4,5
sed,2,3,4,5
test,2,3,4,5
while.sh,2,3,4,5
a+b.sh,2,3,4,5
awk,2,3,4,5
case.sh,2,3,4,5
for.sh,2,3,4,5
grep.all,2,3,4,5
if.sh,2,3,4,5
param.sh,2,3,4,5
sed,2,3,4,5
test,2,3,4,5
while.sh,2,3,4,5
测试如下:

#统计空白行
awk '/^$/{print x+=1}' input

 #查找与替换
awk -F',' '{gsub(/while.sh/,"zhang san",$0)}{print $0}' input >input

 #计算平均数
awk -F',' '{total=$2+$3+$4+$5;avg=total/4}{print $1,avg}' input

 #有重复行情况下的平均数
awk -F',' '{total=$2+$3+$4+$5;avg=total/4;totalall[$1]+=avg;count[$1]++}END{for (i in totalall){print i,totalall[i]/count[i]}}' input

 #匹配正则
awk -F':' '$0!~/root/{print $0}' /etc/passwd

 #IF的用法,输出$为root
awk -F':' '{if($1=="root"){print $0}}' /etc/passwd

注意:awk是按照行循环并可以对每个列进行处理,功能强大。BEGIN里是循环前的处理,END里是循环后的处理。可以定义数组与变量,for、if等的用法与shell里for格式还是不一样的。



其他:

SED常见练习题

http://blog.csdn.net/kakane/article/details/7367133

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

day walker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值