免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2727 | 回复: 11
打印 上一主题 下一主题

第一列相同2次的打印2次的,不成功 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-08 16:28 |只看该作者 |倒序浏览
aaa  bbssafd     adsfas
bbb  aewqe    sasdfa
aaa   bbsae    sadfa
aaa   bbsqw    baeerwq
bbb   aawe       sadfwq
adfae   bbs             sdfa
我想把第一列,出现2次以上的就打印出来,可是用以下语句不成功。。

awk '++a[$1]>2 {for(i=0;i<a[$1];i++)print}'  

怎么不能成功的,查找的数量与实际条件不符号,请问大家还有更好的方法不,,
谢谢了。。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
2 [报告]
发表于 2009-01-08 16:34 |只看该作者
原帖由 filwy 于 2009-1-8 16:28 发表
aaa  bbssafd     adsfas
bbb  aewqe    sasdfa
aaa   bbsae    sadfa
aaa   bbsqw    baeerwq
bbb   aawe       sadfwq
adfae   bbs             sdfa
我想把第一列,出现2次以上的就打印出来,可是用以 ...

>1

论坛徽章:
0
3 [报告]
发表于 2009-01-08 16:34 |只看该作者
awk 'a[$1]++'  file,这个不对,我理解错了。也理解不明白。

[ 本帖最后由 jiang_ocean 于 2009-1-8 18:17 编辑 ]

论坛徽章:
1
2015年亚洲杯之韩国
日期:2015-04-24 09:07:02
4 [报告]
发表于 2009-01-08 16:40 |只看该作者
awk '{a[$1]++;if(a[$1]>2){t=t?total"\n"$11}} END {print t}'

论坛徽章:
0
5 [报告]
发表于 2009-01-08 16:41 |只看该作者

回复 #3 jiang_ocean 的帖子

不符
  1. # cat o
  2. aaa  bbssafd     adsfas
  3. bbb  aewqe    sasdfa
  4. aaa   bbsae    sadfa
  5. aaa   bbsqw    baeerwq
  6. bbb   aawe       sadfwq
  7. adfae   bbs             sdfa

  8. # awk 'a[$1]++' o
  9. aaa   bbsae    sadfa
  10. aaa   bbsqw    baeerwq
  11. bbb   aawe       sadfwq
复制代码

论坛徽章:
0
6 [报告]
发表于 2009-01-08 16:47 |只看该作者
好像楼主的问题容易有歧义:
1、第一列str出现两次及以上的,第一列为str的行都打印出来
2、第一列str出现两次及以上的,从第二次出现开始打印,3楼jiang_ocean的已符合要求

论坛徽章:
0
7 [报告]
发表于 2009-01-08 16:55 |只看该作者
原帖由 jiang_ocean 于 2009-1-8 16:34 发表
awk 'a[$1]++'  file


这个是唯一的。。

论坛徽章:
1
2015年亚洲杯之韩国
日期:2015-04-24 09:07:02
8 [报告]
发表于 2009-01-08 17:05 |只看该作者

回复 #7 filwy 的帖子

不是 唯一是加!

论坛徽章:
0
9 [报告]
发表于 2009-01-08 21:12 |只看该作者

我也来试试

awk '{a[$1]++;b[NR]=$1;c[NR]=$0;
           if(a[$1]>1)k[$1]=$1
        }
        END{
               for(i in k)
                         {
                               for(j=1;j<=NR;j++)
                               {
                                   if(b[j]==k[i])
                                   print c[j]
                               }
                         }
               }' yourtext
-----------------------------------------------------------------------
原来编辑时勾选“禁用Discuz!代码”,就可以正常使用[i]了

[[i] 本帖最后由 cooljean2008 于 2009-1-19 17:32 编辑 [/i]]

论坛徽章:
0
10 [报告]
发表于 2009-01-08 23:31 |只看该作者

回复 #9 cooljean2008 的帖子

我在代码里写的是 if(b[j]=k[i])
怎么浏览的时候k后面就没了...


自己已经发现:只要勾选“禁用Discuz!代码”就可以显示正常了

[[i] 本帖最后由 cooljean2008 于 2009-1-19 17:33 编辑 [/i]]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP