查找指定列的非重复行
时间:2011-01-27
来源:互联网
cat data1
1 2 3
1 2 3
1 2 4
1 2 5
1 2 6
2 2 6
查找第2列和第2列非重复的行。====注意不是去除重复,而是只过滤出只有一次的。
最后用uniq解决了。
uniq -f1 data1是去除重复的
1 2 3
1 2 4
1 2 5
1 2 6
加一个-u参数是查找非重复的。
[root@puppetserver225 ~]# uniq -f1 -u data1
1 2 4
1 2 5
但是uniq的-f参数不是很给力,不能隔列查找。
cat data2
1 2 3 r
1 2 3 r
1 2 4 1
1 2 5 1
1 2 6 y
2 2 6 t
用uniq -f1 -f4 -u data2啥都没查出来。只能用awk先过滤。。。。
能不用awk来一次搞定???
我用awk '{x=$2$3;if(!(x in a)){b[i++]=$0;}}END{for(i in b)print b[i];}' data1
结果没搞定。。。。。
1 2 3
1 2 3
1 2 4
1 2 5
1 2 6
2 2 6
查找第2列和第2列非重复的行。====注意不是去除重复,而是只过滤出只有一次的。
最后用uniq解决了。
uniq -f1 data1是去除重复的
1 2 3
1 2 4
1 2 5
1 2 6
加一个-u参数是查找非重复的。
[root@puppetserver225 ~]# uniq -f1 -u data1
1 2 4
1 2 5
但是uniq的-f参数不是很给力,不能隔列查找。
cat data2
1 2 3 r
1 2 3 r
1 2 4 1
1 2 5 1
1 2 6 y
2 2 6 t
用uniq -f1 -f4 -u data2啥都没查出来。只能用awk先过滤。。。。
能不用awk来一次搞定???
我用awk '{x=$2$3;if(!(x in a)){b[i++]=$0;}}END{for(i in b)print b[i];}' data1
结果没搞定。。。。。
作者: laohuanggua 发布时间: 2011-01-27
是你awk写错了吧 a数组死活没东西啊 那个if有啥子用啊
作者: lkk2003rty 发布时间: 2011-01-27
回复 lkk2003rty
多谢兔爷指点。明天改一下。。。。:lol:
多谢兔爷指点。明天改一下。。。。:lol:
作者: laohuanggua 发布时间: 2011-01-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28