2017-11-16 21 views
1

これは、人がすでに答えているが、適切なスレッドが見つからないというスタックオーバーフローのような感じです。ファイルにn個の重複したエントリを保持する

  • ファイルをソートして一意のエントリを保持するツールがあります。
  • 重複するエントリのみを保持するようにファイルをソートするツールがあります。
  • しかし、重複する値の最初のN番目のエントリを保持し、残りを破棄するように指定する場合はどうすればよいですか?

例えば、下記のリストには、私が最初のフィールドのための重複のN番目数までをプリントアウトできるようにしたいと思います。したがって、たとえば、物事の標準uniq方法は、(ソートされていないリストで)生成することができ

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

:ここで元のリストです

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でこれを行うには賢明な方法がありますか?あなたは3または任意の数の2を変更することができます

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

:どの程度

答えて

0

+2

さらに、awkがファイルをうまく読み込むので、猫を完全に取り除くことさえできます。 – grail

+0

@grailあなたが 'cat ...'を書いていて、*ファイルを連結していなければ、おそらく* UUOc *でしょうか? ( 'cat'の不要使用)?より良いawkカウント[$ 1] ++ <2 'file'。 –

+0

@ DavidC.Rankin - 正しい:) – grail

関連する問題