打印整行,当发现重复时

这是我输入的片段:

DGD3 SOL10
DGD53 SOL15
DGD100 SOL15
DGD92 SOL20
DGD41 SOL22
DGD62 SOL35
DGD13 SOL40
DGD13 SOL40

我的预期输出

DGD53 SOL15
DGD100 SOL15
DGD13 SOL40
DGD13 SOL40

在我的数据中,我有时会重复 SOL(不超过两次重复,而不是例如文件中某些 SOL 的三倍,但仅重复)。SOL 在我的第二列中($2)。因此,当我找到重复的 SOL($2)时,我需要一个打印整行(DGD 和 SOL)的程序。你可以帮帮我吗?

回答

以 awkish 风格添加另一种方式,在第一次读取 Input_file 时获取所有值计数,并在第二次读取时根据计数打印所有值。公平警告,这可能不如其他 2 个解决方案快,但从理解目的来看应该很简单。

awk '
FNR==NR{
  count[$2]++
  next
}
(count[$2]>1)
' Input_file  Input_file


以上是打印整行,当发现重复时的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>