删除第一列中拥有单例的每一行

删除第一列中拥有单例的每一行

我想删除第一列中拥有单例的每一行。例如

输入:字母代表可能有数千个的变量。数字代表列和行。有多个列(此处未显示)。

    1.
1.  A
2.  B
3.  C
4.  C
5.  D
6.  E
7.  A
8.  H
9.  D
10. D

输出:

     1.
 1.  A
 3.  C
 4.  C
 5.  D
 7.  A
 9.  D
10.  D

答案1

我想我理解了你的期望。

awk 'NR==FNR{s[$1]++;next}
     (s[$1]>1){ printf("%2d. %s\n",FNR,$0)
}' infile infile
 1.  A  another_column  ...
 3.  C  ... 
 4.  C  ...
 5.  D  ...
 7.  A  ...
 9.  D  ...
10.  D  ...

如果您不希望结果中包含记录编号,请使用以下命令:

awk 'NR==FNR{s[$1]++;next} (s[$1]>1)' infile infile
 A  another_column  ...
 C  ... 
 C  ...
 D  ...
 A  ...
 D  ...
 D  ...

相关内容