您的位置:首页 > 其它

AWK使用实例

2015-03-10 15:07 239 查看
在awk中,可以用!a[0]++做为条件,对重复出现的行进行处理。bash−3.20]++做为条件,对重复出现的行进行处理。
bash-3.2 cat 2

abc

abc

ef

123

dgag

123

xxx

bash-3.2awk′!a[ awk '!a[0]++’ 2

abc

ef

123

dgag

xxx

对于awk ‘!a[$3]++’,需要了解3个知识点

1、awk数组知识,不说了

2、awk的基本命令格式 awk ‘pattern{action}’

省略action时,默认action是{print},如awk ‘1’就是awk ‘1{print}’

3、var++的形式:先读取var变量值,再对var值+1

以数据

1 2 3

1 2 3

1 2 4

1 2 5

为例,对于awk ‘!a[3]++′awk处理第一行时:先读取a[3]++’
awk处理第一行时: 先读取a[3]值再自增,a[3]即a[3]值为空(0),即为awk‘!0′,即为awk‘1′,即为awk‘1print′awk处理第二行时:先读取a[3]即a[3]值为空(0),即为awk ‘!0’,即为awk ‘1’,即为awk ‘1{print}’
awk处理第二行时: 先读取a[3]值再自增,a[$3]即a[3]值为1,即为awk ‘!1’,即为awk ‘0’,即为awk ‘0{print}’

………….

最后实现的效果就是对于3是第一次出现的行进行打印,也就是去除3是第一次出现的行进行打印,也就是去除3重复的行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: