保留文件

时间:2017-11-16 03:52:43

标签: bash sorting

这感觉就像一个Stack Overflow问题,人们已经回答了,但我找不到合适的帖子。

  • 有一些工具可以对文件进行排序以保留唯一条目。
  • 有一些工具可以对文件进行排序以仅保留重复的条目。
  • 但是......如果我想指定保留第一个重复值的第N个条目,然后丢弃其余值,该怎么办?

例如,在下面的列表中,我希望能够为第一个字段打印最多第N个个重复项。这是原始列​​表:

apple    toledo
apple    omaha
apple    butte
apple    freeport
peach    saginaw
peach    frakenmuth
pears    wichita

因此,例如,标准的uniq做事方式可以生成(在未排序的列表上):

apple toledo
peach saginaw
pears wichita

但我可能希望保留 2个重复的条目:

apple toledo
apple omaha
peach saginaw
peach frakenmuth
pears wichita

或者如果我感到疯狂,甚至会有3个重复的条目:

apple toledo
apple omaha
apple butte
peach saginaw
peach frakenmuth
pears wichita

有什么明智的方法可以在bash中这样做吗?

1 个答案:

答案 0 :(得分:0)

怎么样:

cat list | awk 'count[$1]++ < 2'

您可以将数字2更改为3或其他任何内容。