根据一列保留所有行> 2重复项

时间:2013-04-05 18:14:12

标签: sorting awk uniq

我的文件有数百万行,格式如下:

SN608   VB050   1       1113    1699.50 2339.90 0       1       AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCCGTCAATTTTTTAAAAAAAACCCCCGGGGGGTAGTTTGTTAAAA   a[_ceeeegggfgiiigecccccccccccccccccccccbcccccccccccTTEHGGHHGJHGJSRGEGGJY]]]TX[[[XEEOX[EEEGGJGGGGJS]  1

我已使用sort -k9按第9列对其进行了排序。第9列是一个100个字母的字符串,但有些条目可能有句点。现在我想删除第9列中100个字母的字符串仅出现1或2次(<3次)的行,并将所有其他行保存到文件中。

我使用uniq-d -f9 -w100)和sort进行了游戏,怀疑awk会有所帮助,但我太过新手了解这一点。< / p>

1 个答案:

答案 0 :(得分:1)

这将存储outfile中的第一个和第二个匹配以及dups中的所有其他匹配:

awk '++a[$9]>2{print $0>"dups";next}1' file > outfile
相关问题