我的文件有数百万行,格式如下:
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>
答案 0 :(得分:1)
这将存储outfile
中的第一个和第二个匹配以及dups
中的所有其他匹配:
awk '++a[$9]>2{print $0>"dups";next}1' file > outfile