1.tr

作者: Stone_説 | 来源:发表于2020-02-20 22:37 被阅读0次

    0.简述

    tr是一个简单的替换命令,从标准输入中替换、缩减或删除字符,并将结果写到标准输出。
    此外,tr命令实现的所有功能使用sed均可实现。
    

    1.查看tr命令类型

    [root@centos6 ~]# type tr
    tr is /usr/bin/tr
    

    2.tr为外部命令,使用tr --help或man tr查看常见命令参数

    [root@centos6 ~]# tr --help
    Usage: tr [OPTION]... SET1 [SET2]
    Translate, squeeze, and/or delete characters from standard input,
    writing to standard output.
    
      -c, -C, --complement    use the complement of SET1
      -d, --delete            delete characters in SET1, do not translate
      -s, --squeeze-repeats   replace each input sequence of a repeated character
                            that is listed in SET1 with a single occurrence
                            of that character
      -t, --truncate-set1     first truncate SET1 to length of SET2
          --help     display this help and exit
          --version  output version information and exit
    
    SETs are specified as strings of characters.  Most represent themselves.
    Interpreted sequences are:
    
      \NNN            character with octal value NNN (1 to 3 octal digits)
      \\              backslash
      \a              audible BEL
      \b              backspace
      \f              form feed
      \n              new line
      \r              return
      \t              horizontal tab
      \v              vertical tab
      CHAR1-CHAR2     all characters from CHAR1 to CHAR2 in ascending order
      [CHAR*]         in SET2, copies of CHAR until length of SET1
      [CHAR*REPEAT]   REPEAT copies of CHAR, REPEAT octal if starting with 0
      [:alnum:]       all letters and digits
      [:alpha:]       all letters
      [:blank:]       all horizontal whitespace
      [:cntrl:]       all control characters
      [:digit:]       all digits
      [:graph:]       all printable characters, not including space
      [:lower:]       all lower case letters
      [:print:]       all printable characters, including space
      [:punct:]       all punctuation characters
      [:space:]       all horizontal or vertical whitespace
      [:upper:]       all upper case letters
      [:xdigit:]      all hexadecimal digits
      [=CHAR=]        all characters which are equivalent to CHAR
    

    3.常用功能展示,以/etc/passwd文件前10行进行试验

    [root@centos6 ~]# head /etc/passwd > /tmp/test.txt
    [root@centos6 ~]# cat /tmp/test.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    

    3.1将换行符“\n”用“|”替换

    [root@centos6 ~]# cat /tmp/test.txt | tr "\n" "|"
    root:x:0:0:root:/root:/bin/bash|bin:x:1:1:bin:/bin:/sbin/nologin|daemon:x:2:2:daemon:/sbin:/sbin/nologin|adm:x:3:4:adm:/var/adm:/sbin/nologin|lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin|sync:x:5:0:sync:/sbin:/bin/sync|shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown|halt:x:7:0:halt:/sbin:/sbin/halt|mail:x:8:12:mail:/var/spool/mail:/sbin/nologin|uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin|
    

    3.2删除多余的空行(已经预先在/tmp/test.txt中插入两个空行)

    [root@centos6 ~]# cat /tmp/test.txt 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    
    
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    [root@centos6 ~]# cat /tmp/test.txt | tr -s '\n'
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    

    3.3删除指定字符

    [root@centos6 ~]# cat /tmp/test.txt 
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    [root@centos6 ~]# cat /tmp/test.txt | tr -d '[a-z].'
    ::0:0::/://
    ::1:1::/://
    ::2:2::/://
    ::3:4:://://
    ::4:7::///://
    ::5:0::/://
    ::6:0::/://
    ::7:0::/://
    ::8:12::///://
    ::10:14::///://
    [root@centos6 ~]# cat /tmp/test.txt | tr -dc '[a-z].'
    rootxrootrootbinbashbinxbinbinsbinnologindaemonxdaemonsbinsbinnologinadmxadmvaradmsbinnologinlpxlpvarspoollpdsbinnologinsyncxsyncsbinbinsyncshutdownxshutdownsbinsbinshutdownhaltxhaltsbinsbinhaltmailxmailvarspoolmailsbinnologinoperatorxoperatorrootsbinnologin
    

    3.4大小写字符转换

    [root@centos6 ~]# cat /tmp/test.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    [root@centos6 ~]# cat /tmp/test.txt | tr '[a-z]' '[A-Z]'
    ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
    BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
    DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
    ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN
    LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN
    SYNC:X:5:0:SYNC:/SBIN:/BIN/SYNC
    SHUTDOWN:X:6:0:SHUTDOWN:/SBIN:/SBIN/SHUTDOWN
    HALT:X:7:0:HALT:/SBIN:/SBIN/HALT
    MAIL:X:8:12:MAIL:/VAR/SPOOL/MAIL:/SBIN/NOLOGIN
    UUCP:X:10:14:UUCP:/VAR/SPOOL/UUCP:/SBIN/NOLOGIN
    

    3.5字符串去重

    [root@centos6 ~]# cat /tmp/test.txt
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    [root@centos6 ~]# cat /tmp/test.txt | tr -s '[a-z]'
    rot:x:0:0:rot:/rot:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spol/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spol/mail:/sbin/nologin
    ucp:x:10:14:ucp:/var/spol/ucp:/sbin/nologin

    相关文章

      网友评论

        本文标题:1.tr

        本文链接:https://www.haomeiwen.com/subject/nyctqhtx.html