温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

awk中 !a[$0]++ 与 !a[$1...]++

发布时间:2020-08-08 01:56:24 来源:ITPUB博客 阅读:125 作者:forest7707 栏目:建站服务器
理i解 !a[$0]++ 与 !a[$1]++作用及二者区别,要了解以下两点:
1.a[$0]是未定义的,即undef
2.!优先级高于++

基于以上两点,有如下例子:
awk中 !a[<img src=]++ 与 !a[http://img2.ph.126.net/pLiASpYRWzQDqAfq4WdCwA==/2868792962652662006.jpg...]++">
 

1.!a[$0]++
!a[$0]++可以去除一行中重复的记录,以记录作为数组(可以将a理解为数组)索引;基于上面两点说明,这个不难理解。例子如下
awk中 !a[<img src=]++ 与 !a[http://img1.ph.126.net/fQ982Kq0nUb3EYG53WkXuw==/649362771289050004.jpg...]++">
从上面例子可以看出,重复的记录被删除掉,只保留重复记录中第一次出现的记录


2.!a[$1]++ 或者 !a[$2]++等等
!a[$1]++可以根据记录中某个域删除这个域相同的记录,也可以根据这个域相同,执行另外一些相应的操作。例子如下;
awk中 !a[<img src=]++ 与 !a[http://img1.ph.126.net/rc4VO4XgGDvPf45VSuSYOQ==/977281119156469150.jpg...]++">
从上面例子可以看出,第二个域相同的多条记录被删除,只保留重复记录中第一次出现的记录


 
例子:
1.文件中有多条重复的记录,只显示重复记录中的一条
awk中 !a[<img src=]++ 与 !a[http://img0.ph.126.net/elx1pl6ZnjjmQvjtUYJn1g==/2834171540517331086.jpg...]++">

2.统计(按记录统计)文件中每条记录出现的次数
awk中 !a[<img src=]++ 与 !a[http://img0.ph.126.net/JMAOxuC3i-0-VFjtFkad0A==/1168684103320298760.jpg...]++">
 如上图所示,按照记录统计文件中每条记录出现的次数

2.统计(按域统计)文件中某个域出现的次数,有时候可能根据日志中的IP地址来统计某个IP访问网站的次数
awk中 !a[<img src=]++ 与 !a[http://img0.ph.126.net/adrs5ZR3qe1du_xZB-gvgg==/2395915001778831717.jpg...]++">
 
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI