免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4873 | 回复: 16

怎样打印出重复行 [复制链接]

论坛徽章:
0
发表于 2009-08-06 16:26 |显示全部楼层
有一个文件,是N行M列,我想以 a 列 为标准 找出在 a列中: 有至少一行数据 与其他行的数据重复的 数据

例如:  如下文件:
97650021391620011308|100022|
1234562391620011308|100022|
97650021391620011308|111113|
4213452391621114620|111118|

以第一列为基准的话, 执行命令后 可以输出 : 97650021391620011308
以第二列为基准的话, 执行命令后 可以输出 : 100022

论坛徽章:
0
发表于 2009-08-06 16:33 |显示全部楼层
awk -F "|" '{a[$1]++}a[$1]==2{print $1}' file

awk -F "|" '{a[$2]++}a[$2]==2{print $2}' file

[ 本帖最后由 ywlscpl 于 2009-8-6 16:37 编辑 ]

论坛徽章:
0
发表于 2009-08-06 16:37 |显示全部楼层
哇....ywlscpl  虽然你的用户很难写,我看了两次才拼完,但是我不得不说声,谢谢.....你应该做管理员才对.
我试过了,高手,向你学习....

论坛徽章:
0
发表于 2009-08-06 16:37 |显示全部楼层

回复 #1 piaoxifengxiaoe 的帖子

第一列: awk -F '|' '{print $1}' ur | sort  -k1n | uniq -c | awk '$1>1{print $2}'
第二列: awk -F '|' '{print $2}' ur | sort  -k1n | uniq -c | awk '$1>1{print $2}'

论坛徽章:
0
发表于 2009-08-06 16:38 |显示全部楼层

回复 #3 piaoxifengxiaoe 的帖子

刚才那个貌似写复杂了

论坛徽章:
0
发表于 2009-08-06 16:39 |显示全部楼层
大侠们....好激动的,以后shell有问题,请多指教啊.我也努力学习.谢谢

论坛徽章:
0
发表于 2009-08-06 16:41 |显示全部楼层

回复 #2 ywlscpl 的帖子

改进一下:
第一列: awk -F "|" '{a[$1]++}a[$1]>1{print $1}'  urfile
第二列: awk -F "|" '{a[$2]++}a[$2]>1{print $2}'  urfile

[ 本帖最后由 greendays 于 2009-8-6 16:43 编辑 ]

论坛徽章:
0
发表于 2009-08-06 16:46 |显示全部楼层

回复 #7 greendays 的帖子

我刚刚用你的脚本也试了,不过 出现 有三行重复的话,这样的话就会打印出两行(有四行的话就会打印出三行一样重复的数据)

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2009-08-06 16:49 |显示全部楼层
  1. awk -F \| 'a[$2]++==1{print $2}' urfile
复制代码

论坛徽章:
0
发表于 2009-08-06 16:51 |显示全部楼层
法师[黑哥]好牛啊.....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP