zoukankan      html  css  js  c++  java
  • shell unique

    由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文本行进行排序,使重复行集中到一起

    1、文本行去重

    (1)排序
    由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文本行进行排序,使重复行集中到一起。
    $ sort test.txt
    Apple and Nokia.
    Apple and Nokia.
    Hello World.
    Hello World.
    Hello World.
    Hello World.
    I wanna buy an Apple device.
    My name is Friendfish.
    The Iphone of Apple company.
    The Iphone of Apple company.

    (2)去掉相邻的重复行
    $ sort test.txt | uniq
    Apple and Nokia.
    Hello World.
    I wanna buy an Apple device.
    My name is Friendfish.
    The Iphone of Apple company.

    2、文本行去重并按重复次数排序
    (1)首先,对文本行进行去重并统计重复次数(uniq命令加-c选项可以实现对重复次数进行统计。)。
    $ sort test.txt | uniq -c
    2 Apple and Nokia.
    4 Hello World.
    1 I wanna buy an Apple device.
    1 My name is Friendfish.
    2 The Iphone of Apple company.

    (2)对文本行按重复次数进行排序。
    sort -n可以识别每行开头的数字,并按其大小对文本行进行排序。默认是按升序排列,如果想要按降序要加-r选项(sort -rn)。
    $ sort test.txt | uniq -c | sort -rn
    4 Hello World.
    2 The Iphone of Apple company.
    2 Apple and Nokia.
    1 My name is Friendfish.

    (3)每行前面的删除重复次数。
    cut命令可以按列操作文本行。可以看出前面的重复次数占8个字符,因此,可以用命令cut -c 9- 取出每行第9个及其以后的字符。
    $ sort test.txt | uniq -c | sort -rn | cut -c 9-
    Hello World.
    The Iphone of Apple company.
    Apple and Nokia.
    My name is Friendfish.
    I wanna buy an Apple device.
    下面附带说一下cut命令的使用,用法如下:

    cut -b list [-n] [file …]
    cut -c list [file …]
    cut -f list [-d delim][-s][file …]

    上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field);
    list表示-b、-c、-f操作范围,-n常常表示具体数字;
    file表示的自然是要操作的文本文件的名称;
    delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;
    -s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)
    三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。

    范围的表示方法:
    n 只有第n项
    n- 从第n项一直到行尾
    n-m 从第n项到第m项(包括m)
    -m 从一行的开始到第m项(包括m)
    - 从一行的开始到结束的所有项
    在写这篇文章的时候,用到了vim的大小写转化的快捷键:gu变小写,gU变大写。结合ctrl+v能够将一片文字中的字符进行大小写转换,非常好用。
    ————————————————
    版权声明:本文为CSDN博主「Hao973」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/feng973/article/details/73849586

  • 相关阅读:
    读写excel的组件
    一个关于C#语言中的Property的低级BUG,花了我二十分钟
    使用wwAppConfiguration类库来轻松读写应用程序配置信息
    为因地震死难的同胞默哀
    页面执行时生成静态文件的方法
    【转载】sp_spaceused2,看库里全部表占用的物理空间
    在微软中文技术论坛 CSDN cnblogs 三个微软社区中提问
    在内网服务器中获得真正的客户端ip的方法
    深拷贝的通用方法
    你知道在word中如何将段落标记替换成其他字符吗?
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/11640022.html
Copyright © 2011-2022 走看看