linux 中 awk命令中数组的应用

 

001、基本用法

复制代码
[root@pc1 test4]# ls
a.txt
[root@pc1 test4]# cat a.txt
a b c
d b e
a d e
z b c
a d e
[root@pc1 test4]# awk '{print ay[$2]++}' a.txt
0
1
0
2
1
[root@pc1 test4]# awk '{print ++ay[$2]}' a.txt   ## 记录指定列的元素重复的次数
1
2
1
3
2
复制代码

 

002、统计指定列中元素的频次

复制代码
[root@pc1 test4]# ls
a.txt
[root@pc1 test4]# cat a.txt
a b c
d b e
a d e
z b c
a d e
[root@pc1 test4]# awk '{ay[$2]++} END {for(i in ay) print i, ay[i]}' a.txt
b 3
d 2
复制代码

 

 

003、

复制代码
[root@pc1 test4]# ls
a.txt
[root@pc1 test4]# cat a.txt
a b c
d b e
a d e
z b c
a d e
[root@pc1 test4]# awk 'ay[$1]++ {print $0}' a.txt   ## 依据第一列取出重复数据
a d e
a d e
[root@pc1 test4]# awk 'ay[$2]++ {print $0}' a.txt   ## 依据第二列取出重复数据
d b e
z b c
a d e
复制代码

 

 

004、根据指定列剔除重复

复制代码
[root@pc1 test4]# ls
a.txt
[root@pc1 test4]# cat a.txt
a b c
d b e
a d e
z b c
a d e
[root@pc1 test4]# awk '!ay[$1]++ {print $0}' a.txt   ## 根据第一列剔除重复
a b c
d b e
z b c
[root@pc1 test4]# awk '!ay[$2]++ {print $0}' a.txt   ## 根据第二列剔除重复
a b c
a d e
复制代码

 

posted @   小鲨鱼2018  阅读(101)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-11-04 linux系统实现会话共享功能
2020-11-04 linux系统中不间断会话服务screen命令
2020-11-04 Linux系统中远程传输命令scp
2020-11-04 linux系统中远程控制服务安全密码验证 ssh-keygen命令
点击右上角即可分享
微信分享提示