linux – 在特定列中查找具有公共值的行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 在特定列中查找具有公共值的行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含884字,纯文字阅读大概需要2分钟。
内容图文
![linux – 在特定列中查找具有公共值的行](/upload/InfoBanner/zyjiaocheng/967/6651b2b0c9c9413fb0f0cdd959dceea8.jpg)
假设我有这样的文件
5 kata 45 buu
34 tuy 3 rre
21 ppo 90 ty
21 ret 60 buu
09 ret 89 ty
21 plk 1 uio
23 kata 90 ty
我想在输出中仅包含第4列中包含重复值的行.因此,我想要的输出将是这一个:
5 kata 45 buu
21 ppo 90 ty
21 ret 60 buu
09 ret 89 ty
23 kata 90 ty
我该如何执行此任务?
我可以识别并隔离我感兴趣的列:
awk -F"," '{print $4}' file1 > file1_temp
然后检查是否有重复的值以及有多少:
awk '{dups[$1]++} END{for (num in dups) {print num,dups[num]}}' file1_temp
但这并不是我想要做的……
解决方法:
保留排序的一种简单方法是两次运行文件.第一次,记录计数,然后在第二遍打印计数大于1的那些:
awk 'NR == FNR { ++count[$4]; next } count[$4] > 1' file file
如果您不想两次遍历文件,可以跟踪几个数组中的内容并在END块中进行打印:
awk '{ line[NR] = $0; col[NR] = $4; ++count[$4] }
END { for (i = 1; i <= NR; ++i) if (count[col[i]] > 1) print line[i] }' file
这里行存储整行的内容,col存储第四列,count与以前相同.
内容总结
以上是互联网集市为您收集整理的linux – 在特定列中查找具有公共值的行全部内容,希望文章能够帮你解决linux – 在特定列中查找具有公共值的行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】