专栏首页mwangblogLinux中的管道命令(四)

Linux中的管道命令(四)

uniq

uniq程序查找连续重复的行,一般用于有序数据的查重。

下面是fruit文件的内容:

$ cat fruit
apple
apple
banana
grape
grape
grape
peach
pear
pear
watermelon

uniq程序在没有任何命令选项的情况下,对输入去除重复行后输出:

$ uniq fruit
apple
banana
grape
peach
pear
watermelon

它有几个常用的命令选项:

  • -c:去除重复行后输出,在每行前标明重复次数。
  • -u:仅输出不重复的行。
  • -d:仅输出重复行。

下面是几个例子:

$ uniq -c fruit # 在每行前标明重复次数
      2 apple
      1 banana
      3 grape
      1 peach
      2 pear
      1 watermelon
$ uniq -d fruit # 仅输出重复行
apple
grape
pear
$ uniq -u fruit # 仅输出不重复行
banana
peach
watermelon
$ uniq -cd fruit # 仅输出重复行,并标明重复次数
      2 apple
      3 grape
      2 pear

sort

sort程序对文件内容按行进行排序。

首先来看city文件的内容:

$ cat city
Chengdu
Tsinan
Ningpo
Canton
Tsinan
Sining
Sining
Taipei
Canton

city文件是一个没有排序的文件,sort同学可以帮我们把它变成排序好的:

$ sort city
Canton
Canton
Chengdu
Ningpo
Sining
Sining
Taipei
Tsinan
Tsinan

然而事实上并没有写入文件,使用-o选项指定输出文件:

$ sort -o citysort city

这条命令中sortcity文件中的内容排序后写入到citysort中。

使用-f命令选项使sort忽略大小写差异。

使用-c命令选项查看文件是否是排序好的:

$ sort -c city
sort: city:3: disorder: Ningpo

sort告诉我们city文件从Ningpo开始是未排序的。

-u选项使sort对文件内容进行排序,并去除重复行:

$ sort -u city
Canton
Chengdu
Ningpo
Sining
Taipei
Tsinan

还有一个很重要的选项,就是-r选项,它使sort反向排序:

$ sort -ru city
Tsinan
Taipei
Sining
Ningpo
Chengdu
Canton

相关:还有很多有用的过滤器,比如expand、fmt、join等等,您可以使用man查看使用说明。

本文分享自微信公众号 - mwangblog(mwangblog)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 欧几里得算法(辗转相除法)

    105 = 24 x 4 + 9 24 = 9 * 2 + 6 9 = 6 * 1 + 3 6 = 3 * 2 + 0

    mwangblog
  • 开始使用MiniZinc

    MiniZinc是一个用来描述整数和实数的优化约束和决策问题的语言,它允许用户以接近问题的数学公式的方式编写模型。

    mwangblog
  • Dijkstra算法

    Dijkstra算法使用了广度优先搜索解决赋权有向图(或无向图)的单源最短路径问题。

    mwangblog
  • order by的工作原理

    where条件后面是city字段,然后根据name排序,可以看到,执行计划中有:using filesort字样。这是因为name字段没有索引,所以需要借助so...

    AsiaYe
  • 简单介绍订单号或者流水号的生成方法

    一般订单号或者流水号等可能在一些平台会用到,然后我就简单的介绍一个我自己生成订单号和流水号的一个方法吧,如果程序有问题或者你有更好的生成办法,欢迎留言,留下你的...

    小小鱼儿小小林
  • CSS伪类

      注:如果链接不起作用,请修改链接状态顺序为link--visited--hover-active.

    阿豪聊干货
  • CCF考试——201612-4压缩编码

      给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何...

    AI那点小事
  • 微信亲自发福利!用这款小程序,每天都能帮你省钱 | 亲儿子 #13

    相信 99% 的人会选手机。毕竟,用手机可以很方便地买单,也不用担心掉钱包,而且,还能省钱。

    知晓君
  • Golang 方法接收者为值与指针的区别

    Golang 中同时有函数和方法。方法是一个包含了接收者(receiver)的函数,receiver可以是内置类型或者自定义类型struct的一个值或者是一个指...

    Dabelv
  • Spring Boot 实现json和jsonp格式数据接口Spring boot 实现json和jsonp格式数据接口

    1.新建一个类继承AbstractJsonpResponseBodyAdvice,重写父类构造方法, 传入callback和jsonp参数。

    一个会写诗的程序员

扫码关注云+社区

领取腾讯云代金券