从uniq命令的帮助信息中可以看到,该命令只过滤相邻的重复行.

如果要去掉所有重复行,需要先排序,或者使用uniq -u

$ uniq --h
Usage: uniq [OPTION]... [INPUT [OUTPUT]]
Filter adjacent matching lines from INPUT (or standard input),
writing to OUTPUT (or standard output). With no options, matching lines are merged to the first occurrence. Mandatory arguments to long options are mandatory for short options too.
-c, --count prefix lines by the number of occurrences
-d, --repeated only print duplicate lines, one for each group
-D print all duplicate lines
--all-repeated[=METHOD] like -D, but allow separating groups
with an empty line;
METHOD={none(default),prepend,separate}
-f, --skip-fields=N avoid comparing the first N fields
--group[=METHOD] show all items, separating groups with an empty line;
METHOD={separate(default),prepend,append,both}
-i, --ignore-case ignore differences in case when comparing
-s, --skip-chars=N avoid comparing the first N characters
-u, --unique only print unique lines
-z, --zero-terminated line delimiter is NUL, not newline
-w, --check-chars=N compare no more than N characters in lines
--help display this help and exit
--version output version information and exit A field is a run of blanks (usually spaces and/or TABs), then non-blank
characters. Fields are skipped before chars. Note: 'uniq' does not detect repeated lines unless they are adjacent.
You may want to sort the input first, or use 'sort -u' without 'uniq'.
Also, comparisons honor the rules specified by 'LC_COLLATE'.
$ cat tmp.txt
aa
aa
bb
bb
bb
cc
cc
aa
cc
bb
$ cat tmp.txt | uniq
aa
bb
cc
aa
cc
bb

先sort再uniq可以去除所有重复项:

$ cat tmp.txt | sort | uniq
aa
bb
cc

或者使用uniq -u:

$ cat tmp.txt | uniq -u
aa
cc
bb

但是这种方法不一定起效(参考下面的例子)

$ head info.json -n20 | jq .industry | awk -F '"' '{print $2}' | awk '{if (length > 0) print $0}' | uniq | sort # ==> 没有去重
商务服务业
建筑装饰和其他建筑业
批发业
批发业
批发业
机动车、电子产品和日用产品修理业
研究和试验发展
纺织服装、服饰业
计算机、通信和其他电子设备制造业
软件和信息技术服务业
道路运输业
零售业
$ head info.json -n20 | jq .industry | awk -F '"' '{print $2}' | awk '{if (length > 0) print $0}' | uniq -u | sort # ==> 去重不完全
商务服务业
建筑装饰和其他建筑业
批发业
批发业
机动车、电子产品和日用产品修理业
研究和试验发展
纺织服装、服饰业
计算机、通信和其他电子设备制造业
软件和信息技术服务业
道路运输业
零售业
$ head info.json -n20 | jq .industry | awk -F '"' '{print $2}' | awk '{if (length > 0) print $0}' | sort | uniq # ==> 去重成功
商务服务业
建筑装饰和其他建筑业
批发业
机动车、电子产品和日用产品修理业
研究和试验发展
纺织服装、服饰业
计算机、通信和其他电子设备制造业
软件和信息技术服务业
道路运输业
零售业

Linux 去重 先sort再uniq的更多相关文章

  1. Linux进阶命令-sort、uniq、 cut、sed、grep、find、awk

    命令难度总体来说有简入难,参数都是工作中常常用到的.如果涉及到一些生僻的参数还请百度或man一下. sort(参考学习网站:http://www.cnblogs.com/dong008259/arch ...

  2. Linux高级命令-sort、uniq、 cut、sed、grep、find、awk

    sort(参考学习网站:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html) 功能:根据不同的数据类型进行排序 格式:s ...

  3. awk的替代先sort 再uniq -c 再sort ,uniq只能队相邻的起作用sort先让之间相邻再sort,最后sort是数量排序

    [root@localhost ~]# cat aa.txt |sort|uniq -c|sort -nk1 1 22\ 1 44 1 55\ 1 bb 1 dd 1 ff 1 gg 1 kk 1 o ...

  4. Linux中sort和uniq关于排序去重的那些用法

    相信在Linux下对文件操作经常会用到sort和uniq命令,下面系统的介绍一下这两个命令的用法. sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出.sort命令既可以从特 ...

  5. linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解

    一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.t ...

  6. linux命令(12)uniq去重

    转载地址:http://blog.51yip.com/shell/1022.html 实例详细说明linux下去除重复行命令uniq 一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以 ...

  7. linux之sort和uniq

    uniq uniq命令: uniq不加参数,只对相邻的相同行内容去重. 例子如下: [root@localhost ~]# pwd /root [root@localhost ~]# cat oldb ...

  8. Linux Shell 文本处理工具集锦--Awk―sed―cut(row-based, column-based),find、grep、xargs、sort、uniq、tr、cut、paste、wc

    本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实用的: ...

  9. Linux sort和uniq命令的应用

    sort: 选项: -b 忽略每行前面开始出的空格字符 -c 检查文件是否已经按照顺序排序 -d 排序时,处理英文字母.数字及空格字符外,忽略其他的字符 -f 排序时,将小写字母视为大写字母 -i 排 ...

随机推荐

  1. Jquery9 事件对象

    学习要点: 1.事件对象 2.冒泡和默认行为 JavaScript 在事件处理函数中默认传递了 event 对象,也就是事件对象.但由于浏览器的兼容性,开发者总是会做兼容方面的处理.jQuery 在封 ...

  2. Linux安装ftp组件vsftpd

    1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y install vsftpd 2 添 ...

  3. cogs 1487. 麻球繁衍

    ★   输入文件:tribbles.in   输出文件:tribbles.out   评测插件 时间限制:3 s   内存限制:256 MB [题目描述] 万有引力定律: “使物体相互靠近的力的大小与 ...

  4. Mybatis <if>标签使用注意事项

    在<if>标签的test中,不能写成“name !='aa'” , 会报错### Error querying database. Cause: java.lang.NumberForma ...

  5. Juniper SRX 简单命令二

    --------------------------Juniper SRX 用户管理--------------------------- Juniper的命令,其实是比较形象的,英文稍微好一点,基本 ...

  6. Spring MVC 实践笔记

    1.了解 Maven 的用法:http://spring.io/guides/gs/maven/ .这篇英文非常详细的演示了 Maven 的用法,在命令行下执行.注意,运行Maven的时候,Maven ...

  7. python:使用Fabric自动化你的任务

    http://www.th7.cn/Program/Python/2012/03/05/62236.shtml

  8. Entity Framework教程及文章传送门

    Entity Framework视频教程http://www.iqiyi.com/playlist296844502.html Model-Code First做法講解與教學 (ASP.net MVC ...

  9. [Vue]webpack的require与require.context

    1.require 1.1完整路径的require语句: require('tools'); //preset alias tools require('./js/main'); 1.2带表达式的 r ...

  10. puma(5300✨) Rails的一个多线程,高并发处理的web server

    https://github.com/puma/puma 在开发和产品环境下,Puma是一个简单,快速,多线程,并高并发highly concurrent HTTP1.1server for Ruby ...