Linux-对文本某列去重-并统计个数-awk

awk '{print $2}' test.txt |sort |uniq |wc -l
  1. 待处理文本如下:

    $ cat test.txt
    10003141	98	优秀
    10003446	80	良好
    10003460	85	优秀
    10003967	50	不及格
    10004205	70	及格
    10004526	88	优秀
    10005500	98	优秀
    10005583	65	及格
    10005677	55	不及格
    10005828	50	不及格
    

    目的:得到第二列成绩列的去重并排序的结果

  2. 选定第二列

    $ awk '{print $2}' test.txt |less
    98
    80
    85
    50
    70
    88
    98
    65
    55
    50
    (END)
    
  3. 利用管道命令命令排序

    $ awk '{print $2}' test.txt |sort |less
    50
    50
    55
    65
    70
    80
    85
    88
    98
    98
    
  4. 去重并统计

    $ awk '{print $2}' test.txt |sort |uniq |wc -l
           8
    $
    

    :想将结果输出为新文本可以采用

    $ awk '{print $2}' test.txt |sort |uniq >test2.txt
    
  • 如有不妥,请指示正,谢谢阅读!
    作者:togetlife

你可能感兴趣的:(Linux)