awkを使用してレコードのn番目のエントリを表示し、他のエントリを削除するにはどうすればよいですか?
入力ファイル:
79933,2
79933,4
79933,5
55251,1
49494,4
49494,2
49494,2
49494,1
この例では、目的の出力が2番目の発生の場合は次のようになります。
79933,4
49494,2
答え1
POSIX的に:
n=2 awk -F, '++a[$1]==ENVIRON["n"]' <file
最初のフィールドが表示されるたびに増加し、そのフィールドの発生を追跡し、それを配列に保存しますa
。 2回目に発生すると、条件はtrueになり、awk
印刷されます$0
。