Chinaunix

标题: 根据域比较输出序号 [打印本页]

作者: blueghost_mt    时间: 2013-08-08 19:11
标题: 根据域比较输出序号
11        elex337_u000014        9        0
12        elex337_Golden214        14        0
14        elex337_u000017        9        0
15        elex337_u000019        11        0
16        elex337_u000020        9        0
17        elex337_Lokio        9        0
18        elex337_u000022        19        0
19        elex337_u000023        11        0
20        elex337_u000024        14        0
21        elex337_swordas15        9        0
22        elex337_Koann        19        0
23        elex337_Vylex        26        0
24        elex337_u000028        19        0
25        elex337_u000014        1        0
26        elex337_Golden214        35        1
27        elex337_u000016        0        0
28        elex337_u000017        22        0
29        elex337_u000019        10        0
30        elex337_u000020        11        0
31        elex337_Lokio        9        0
32        elex337_u000022        9        0
33        elex337_u000023        32        0
34        elex337_u000024        9        0
35        elex337_swordas15        22        0
36        elex337_Koann        11        0
37        elex337_Vylex        22        0
39        elex337_u000042        11        0
40        elex337_u000043        10        0
我有这样一堆数据,这个模式大约3w条
我希望判断出第二个域内重复的选项。然后重复的选项比较第四个域的大小,取出小的输出第一个域,如果相同比较第三个域的大小,同样取出小的输出第一个域,若还是相同则输出第一个,这个该如何写脚本或者awk判断?
求各位大神指教!
作者: rdcwayx    时间: 2013-08-08 19:18
  1. sort -k2,2 -k4,4n -k3,3n -k1,1n < infile |awk '!a[$2]++'
复制代码

作者: blueghost_mt    时间: 2013-08-08 21:16
回复 2# rdcwayx


    多谢~很有效,虽然没输出第一项,但问题不大
作者: rdcwayx    时间: 2013-08-09 06:22
回复 3# blueghost_mt
  1. 25        elex337_u000014        1        0
  2. 11        elex337_u000014        9        0
复制代码
第一行和 25 这行比较的话,应该输出25 这行,命令没错,除非有另有想法。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2