linux 中根据指定列的重复次数输出数据

 

001、按照原始顺序输出

复制代码
[root@pc1 test02]# ls
a.txt
[root@pc1 test02]# cat a.txt        ##  测试数据
a       76
b       78
a       100
c       222
b       7777
b       8888
a       9999
b       3333
d       1111
e       7777777
e       9999999
f       yyyyyy
f       777777
g       733333
f       333333
f       999999
f       gggggg
f       wwwwww
f       666666
a       ppppp
e       ggggg
e       fffff              ## 输出第一列重复4次的数据, 按照原始顺序输出
[root@pc1 test02]# awk '{OFS = "\t"; print ++ay[$1], $0}' a.txt | tac | awk '++ay[$2] == 1 && $1 == 4' | awk '{print $2}' | awk '{ay[NR] = $0} END {for(i = 1; i <= NR; i++) {print NR, ay[i]}}' | cat - a.txt | awk '{if(NR == 1) {a = $1}; if(NR <= a) {ay[$2]} else if($1 in ay) {print $0}}'
a       76
b       78
a       100
b       7777
b       8888
a       9999
b       3333
e       7777777
e       9999999
a       ppppp
e       ggggg
e       fffff
复制代码

 

002、排序后输出

复制代码
[root@pc1 test02]# ls
a.txt
[root@pc1 test02]# cat a.txt
a       76
b       78
a       100
c       222
b       7777
b       8888
a       9999
b       3333
d       1111
e       7777777
e       9999999
f       yyyyyy
f       777777
g       733333
f       333333
f       999999
f       gggggg
f       wwwwww
f       666666
a       ppppp
e       ggggg
e       fffff
[root@pc1 test02]# cut -f 1 a.txt | sort | uniq -c | awk '$1 == 4 {print $2}' > tmp.txt
[root@pc1 test02]# cat tmp.txt a.txt | awk -v a=$(wc -l < tmp.txt) '{if(NR <= a) {ay[$0]} else if($1 in ay) {print $0}}'
a       76
b       78
a       100
b       7777
b       8888
a       9999
b       3333
e       7777777
e       9999999
a       ppppp
e       ggggg
e       fffff
复制代码

 .

 

posted @   小鲨鱼2018  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-10-24 linux中删除文本的最后一行
2021-10-24 ubuntu qt.qpa.xcb: could not connect to display
2021-10-24 linux系统中comm命令的用法
2020-10-24 linux系统中配置磁盘容量配额服务(quota)
2020-10-24 linux系统中添加swap交换分区、删除swap交换分区
点击右上角即可分享
微信分享提示