zoukankan      html  css  js  c++  java
  • sort,uniq,wc,tr

    sort (选项)(参数)      sort是用来排序数据的。

    以下面这个文本为例

    [root@bogon ~]# cat a
    123
    4567
    88
    abc
    aaa
    AAA
       jk
    777
    777
    

    sort默认以ASCII码表为标准,按字符从左至右的比较,最后从小到大输出

    [root@bogon ~]# cat a
    123
    4567
    88
    abc
    aaa
    AAA
       jk
    777
    777
    

    -n:按照数值的大小排序

    [root@bogon ~]# sort -n a
    
    aaa
    AAA
    abc
       jk
    88
    123
    777
    777
    4567
    

    -r:逆序输出

    [root@bogon ~]# sort -nr a
    4567
    777
    777
    123
    88
       jk
    abc
    AAA
    aaa
    

     -t:指定分隔符,和-k一起使用

    -k:选取哪个字段

    实例以/etc/passwd为例,以“:”为分隔符,选取第5字段排序
    [root@bogon ~]# head -5 /etc/passwd | sort -t: -k5 
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    

     -u:排序后相同的内容只显示一次,行必须紧邻才能算是相同

    [root@bogon ~]# sort -u a
    
    123
    4567
    777
    88
    aaa
    AAA
    abc
       jk
    

     -f:排序时忽略大小写

    [root@bogon ~]# sort -fu a
    
    123
    4567
    777
    88
    aaa
    abc
       jk
    

    ------------------------------------------------------------------------------------------------------------

    uniq (选项)(参数)  相当于 sort -u,同样,相同行必须紧邻才算相同。

    -c:显示文件中相同的行重复的次数

    [root@bogon ~]# uniq -c a
          1 123
          1 4567
          1 88
          1 abc
          1 aaa
          1 AAA
          1    jk
          2 777
          1 
    

     -d只显示文件中相同的行:

    [root@bogon ~]# uniq -d a
    777
    

    ------------------------------------------------------------------------------------------------------------

    wc (选项)(参数) 文本统计命令,可以统计文本的行数,单词数,字符数

    默认

    [root@bogon ~]# wc a
    10  9 39 a
    10行9个单词39个字符,空格也算是字符
    

     -l:只显示行数

    [root@bogon ~]# wc -l a
    10 a
    

     -w:只显示单词数

    [root@bogon ~]# wc -w a
    9 a
    

     -c或-m:只显示字符数

    [root@bogon ~]# wc -c a
    39 a
    [root@bogon ~]# wc -m a
    39 a
    

     -L:显示最长的一行中有多少个字符

    [root@bogon ~]# wc -L a
    5 a
    

    ------------------------------------------------------------------------------------------------------------

    tr (选项)(参数):   tr可以做字符串转换一类的事情,但是tr需要输入重定向或管道流才能使用

    默认情况下可以做替换或者大小写转换等

    [root@bogon ~]# cat a | tr 'a' 'A'
    123
    4567
    88
    Abc
    AAA
    AAA
       jk
    777
    777
    

     -c:将没有比配到的字符都变成另一个字符

    [root@bogon ~]# cat a | tr -c '77' 'x'
    xxxxxxx7xxxxxxxxxxxxxxxxxxxxxx777x777xx[root@bogon ~]# 
    

     -d:将匹配到的字符都删除

    [root@bogon ~]# cat a | tr -d '77' 
    123
    456
    88
    abc
    aaa
    AAA
       jk
    

     -s:将匹配到的字符,重复的都显示一次

    [root@bogon ~]# cat a | tr -s '77' 
    123
    4567
    88
    abc
    aaa
    AAA
       jk
    7
    7
    

     还可以使用的一些字符集

    [:alnum:]:字母和数字
    [:alpha:]:字母
    [:cntrl:]:控制CTRL字符
    [:digit:]:数字
    [:graph:]:图形字符
    [:lower:]:小写字母
    [:print:]:可打印字符
    [:punct:]:标点符号
    [:space:]:空白字符
    [:upper:]:大写字母
    [:xdigit:]:十六进制字符
    初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
  • 相关阅读:
    二进制,八进制,十六进制,十进制之间的换算
    14简化路径(71)
    13字符串解码(394)
    12 反转每对括号间的子串(1190)
    11 使括号有效的最少添加(921)
    10 K 个一组翻转链表(25)
    9 从链表中删去总和值为零的连续节点(1171)
    8 链表中的下一个更大节点(1019)
    7两两交换链表中的节点(24)
    6 奇偶链表(
  • 原文地址:https://www.cnblogs.com/forlive/p/8118452.html
Copyright © 2011-2022 走看看