'man uniq'记录了-f = N和-s = N选项,这使得uniq在比较行时分别跳过前N个字段/字符,但是如何强制uniq跳过 last N个字段/字符?
答案 0 :(得分:15)
如果您希望首先进行排序功能,然后为要排序的字段的每个唯一组合只保留一行,则可以单独使用unix实用程序排序。
例如,请考虑以下名为some_data
a;c;4
a;b;9
a;b;6
我们希望按第一个和第二个字段排序,并保留第三个字段,因此我们进行稳定排序,如下所示:
$ sort -k1,1 -k2,2 -t';' --stable some_data
给出了
a;b;9
a;b;6
a;c;4
现在说我们只想保留第一列和第二列的唯一组合。然后我们会这样做:
$ sort -k1,1 -k2,2 -t';' --stable --unique some_data
给出了
a;b;9
a;c;4
答案 1 :(得分:14)
如果您想使用uniq
,则需要先对数据进行排序 sort file | rev | uniq -f 10 | rev
答案 2 :(得分:9)
rev $ filename |排序| uniq -f = N |转