1.awk中的!a[$0]++与!a[$1]++的使用
!a[$0]++可以去除一行中重复的记录,例子如下:
[[email protected] shell]# cat 1.txt a a b b c c e f g a f [[email protected] shell]# awk ‘!a[$0]++‘ 1.txt a b c e f g
解释:a[$0]就是以每一行内容为索引的一个hash表,当a[$0]未声明时,a[$0]为假,在未声明的情况下,进行一次a[$0]++后,a[$0]即为真,如果行内容重复,它的值增加后进行!运算变成假。
同理!a[$n]++能根据记录中第n个域删除这个域相同的记录,或根据这个域相同做一些相应操作。
参考资料:
http://blog.163.com/njut_wangjian/blog/static/16579642520141027103125556/
时间: 2024-10-20 16:36:45