当前位置 博文首页 > Shell脚本去重的几种方法实例

    Shell脚本去重的几种方法实例

    作者:admin 时间:2021-07-05 18:43

    测试文件

    复制代码 代码如下:

    [root@bogon ~]# cat >test
    jason
    jason
    jason
    fffff
    jason

    按 Ctr + D保存

    1、sort -u

    复制代码 代码如下:

    [root@bogon ~]# sort -u test
    fffff
    jason

    2、uniq
    复制代码 代码如下:

    [root@bogon ~]# uniq test
    jason
    fffff
    jason

    由此可见,uniq需要先排序后才能去重

    3、sort、管道和uniq结合运用
    去除重复并保留一份重复的数据

    复制代码 代码如下:

    [root@bogon ~]# sort test|uniq
    fffff
    jason

      去除所有重复的行(不保留重复的行),并计算行数
    复制代码 代码如下:

    [root@bogon ~]# sort test|uniq -uc
          1 fffff

      找出所有重复的行,并计算行数
    复制代码 代码如下:

    [root@bogon ~]# sort test|uniq -dc
          4 jason

    根据某个字段去重

    将原有数据改为

    复制代码 代码如下:

    [root@bogon ~]# more test
    jason 1
    jason 2
    jason 1
    fffff 2
    jason 3
    [root@bogon ~]# sort -k 1,1 -u test
    fffff 2
    jason 1

      man sort查看sort的用法,-k参数是这么描述的:
    复制代码 代码如下:

        -k, --key=POS1[,POS2]
        start a key at POS1 (origin 1), end it at POS2 (default end of line)

      也就是说-k哪几个列进行排序,pos1是开始列,pos2是结束列

    jsjbwy
下一篇:没有了