【awk】输出和过滤重复行【转载】

2020-04-07  本文已影响0人  Silver_42ac

转载自
AWK 输出重复的行 去掉重复的行

awk 'a[$0]++' filename   //用于输出重复的行

awk '!a[$0]++' filename //用于去掉重复的行

其主要的原理,是利用AWK的类似字典的a, 用每一行的内容作为索引,如果行不存在 则没有a[0], 返回 False。 如果当前行(0)有内容,则默认 a[0]=0, 也为False;但是当读到相同内容时,a[0]=a[$0]+1

实际上 awk 这里是在判断,因为没写在花括号里;和grep 一个效果

a[$0]++先返回,而后++

第二次读到相同的行,a[$0]++返回非0值。

上一篇 下一篇

猜你喜欢

热点阅读