千锋老师手里可是有着很多大型企业的面试真题哦~连熊厂的都有呢!
问题描述,下图是nginx访问日志,请你按分钟统计各状态码的个数。
这个问题可以用php、python或perl等语言来实现,对于运维工程师,简单的就是awk。
下面我们就用awk语言来实现这个需求,代码很简单。
输出结果未排序
这里主要的就是gensub函数,用它来做正则匹配,匹配出我们想要的"小时:分钟"。有同学可能会说,我用awk -F:不就行了吗,$2和$3就是小时和分钟,多省事。这话没错,但面试官顶多给你80分,因为有的日志时间是没有分隔符':'的,比如有的时间就写成20160425185329,要取出这种格式的小时和分钟,必须用正则了,-F参数肯定就不行了。
以上输出的结果并未排序,如果想按照升序排序,简单的方式是利用sort命令,如下所示:
利用管道排序
如果您对代码有洁癖不想用管道,那么直接用awk的内置函数asorti即可,如下图所示:
利用asorti函数排序
千锋教育,独家开创“Linux架构师课程”。这是独家的全栈Linux运维课程,包含“公有云+私有云+自动化运维+Python运维开发”等核心开发技术,其中“私有云课程”较同行更全。而值得注意的是,在运维行业中,没有哪门学问的薪资比私有云更高。
更何况,千锋教育Linux运维课程内容,还是由国内第29位红帽认证架构师亲自编写的,更是由他和另一位业界大咖唐老师一同讲授。课程内容紧贴一线,实时动态更新,实力打造Linux运维行业佼佼者。
千锋Linux课程的研发与内容编排相比其他培训机构更加科学化、实用化、系统化。具体表现在千锋Linux课程全近推出的的课程体系更加注重学员的实践动手能力,提出以“就业为导向”的教学理念,并创新性的将“企业真实生产案例”带入到教学体系中,以确保学员真正的做到“学即所用”,简而言之就是使学员从容过渡到工作岗位。
相关文章
了解千锋动态
关注千锋教育服务号
扫一扫快速进入
千锋移动端页面
扫码匿名提建议
直达CEO信箱