0

我有一个包含数百万行的文件,格式如下:

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

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

我玩过uniq( -d -f9 -w100) 并且sort怀疑awk会有所帮助,但我太新手了,无法弄清楚这一点。

4

1 回答 1

1

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

awk '++a[$9]>2{print $0>"dups";next}1' file > outfile
于 2013-04-05T18:30:22.763 回答