awk的程序指令由模式和操作组成,即Pattern { Action }的形式,如果省略Action,则默认执行 print $0 的操作。

模式(Pattern)用于筛选记录,操作(Action)用于处理字段,操作可以有多个,大括号内用;号隔开。

awk  '!S[$0]++'  file.txt   

++ 先赋值再+1

! 直接取反,若S[$0] 不存在数组里,运算后的结果为

'!0'   S[$0]=1

模式匹配为!0 ,所以执行print $0

若该行存在数组里

'!1'  S[$0]=2

模式匹配为!1  或者!2  模式匹配为0,进入下一行