一道面试问题学生们的多种解答汇总

老男孩LINUX实战运维 10期QQ群学生讨论总结

李同学突然发问:
李同学(1115066391) 10:57:11
有如下文件,请用awk命令计算出第二域含有bbb的个数
[root@lnmp ~]# cat a.txt
aaa     bbb     cccc    dddd
bbb     ccc     dddd    eeee
ccc     bbb     dddd    bbbb
eee     fff     zzzz    ssss
ggg     lll     bbbb    eeee
=======================================
测试数据:
[root@oldboy ~]# cat a.txt
aaa     bbb     cccc    dddd
bbb     ccc     dddd    eeee
ccc     bbb     dddd    bbbb
eee     fff     zzzz    ssss
ggg     lll     bbbb    eeee

王同学率先发出两个靠谱的答案:
1)
[root@oldboy ~]# awk '$2=="bbb" {i=i+1} END {print i}' a.txt
2

2)
[root@oldboy ~]# awk '{if($2=="bbb") i=i+1} END {print i}' a.txt
2

张同学也发出来俩答案:
3)
[root@oldboy ~]# awk '{if($2=="bbb") ++oldboy[$2]} END {for (a in oldboy) print oldboy[a]}' a.txt
2

4)
[root@oldboy ~]# awk '{if($2=="bbb") ++oldboy[$2]} END {for (a in oldboy) print a,oldboy[a]}' a.txt
bbb 2

5)
某个11期的郑同学正在上课,趁着上课间隙也加入了10期群里的答题挑战。
[root@oldboy ~]# awk '$2 == "bbb"' a.txt|wc -l
2

6)
[root@oldboy ~]# awk '{print $2}' a.txt  |awk '/bbb/' |wc -l
2

7)
一个山东大汉(也是老男孩的学生,呵呵),意外的发言发言了,答案同样令人震惊。
[root@oldboy ~]# aa=(`cat a.txt |awk '{print $2}' |awk '/bbb/'`)
[root@oldboy ~]# echo ${#aa[@]}
2

8)
庞风同学也给了自己的答案。
[root@oldboy ~]# awk 'NF==4 && $2 ~ /bbb/ {print $2}' a.txt|sort|uniq -c
2 bbb

看到群里的同学这么热衷于技术,并且勇于思考,老男孩甚感欣慰。加油,同学们。

从下周起,开始老男孩IT培训的VIP学生日常不定时现场免费答疑服务,助力同学们发展。

本文出自 “老男孩的linux博客” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/901095

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值