zoukankan      html  css  js  c++  java
  • linux中tr命令

    tr用来转换或者删除一段文字。

    1、实现大小写转换

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt  ## 测试数据
    i A E F
    d q J M
    S e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr [A-Z] [a-z]  ##全部转换为小写
    i a e f
    d q j m
    s e n f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q J M
    S e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr [a-z] [A-Z]  ## 全部转换为大小
    I A E F
    D Q J M
    S E N F
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q J M
    S e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr [AF] [af]   ##转换指定字符
    i a E f
    d q J M
    S e N f

    2、行与列数据的转换

    a、行转列

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q J M
    S e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr " " "\n"  ## 行转列,将空格替换为换行符
    i
    A
    E
    F
    d
    q
    J
    M
    S
    e
    N
    f

    b、列转行

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt  ## 测试数据
    i
    A
    E
    F
    d
    q
    J
    M
    S
    e
    N
    f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr "\n" " "    ## 末尾多出空格,但是没有换行符
    i A E F d q J M S e N f root@DESKTOP-1N42TVH:/home/test#
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i
    A
    E
    F
    d
    q
    J
    M
    S
    e
    N
    f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr "\n" " " | sed 's/.$/\n/'  ## 利用sed将末尾的空格转换为换行符
    i A E F d q J M S e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr "\n" " " | sed 's/.$/\n/' | cat -A  
    i A E F d q J M S e N f$

    3、-d 删除指定字符

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q d M
    d e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -d "E"  ## 删除字符E
    i A  F
    d q d M
    d e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q d M
    d e N f   
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -d "d"   ##删除字符d
    i A E F
     q  M
     e N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -d [dE]  ##同时删除字符d和E
    i A  F
     q  M
     e N f

    4、利用tr删除空行

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    
    d q d M
    
    
    d e N f
    root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
    i A E F$
    $
    d q d M$
    $
    $
    d e N f$
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "\n"  ##将多个换行符\n压缩为一个\n
    i A E F
    d q d M
    d e N f

    5、-s 将多个连续的字符压缩为一个字符

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q ddd M
    d eee N fff
    root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
    i A E F$
    d q ddd M$
    d eee N fff$
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "d"   ## 将多个连续的d压缩为一个d
    i A E F
    d q d M
    d eee N fff
    root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
    i A E F$
    d q ddd M$
    d eee N fff$
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "def"   ##将多个连续的d、e、f压缩维唯一
    i A E F d q d M d e N f

    压缩多个连续的空格或者制表符:

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i      A E F
    d q d M
    d e                     N f
    root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
    i      A E F$
    d q d M$
    d e^I^I^IN f$
    root@DESKTOP-1N42TVH:/home/test# sed -n l a.txt
    i      A E F$
    d q d M$
    d e\t\t\tN f$
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s " "   ##将多个连续的空格压缩为一个空格
    i A E F
    d q d M
    d e                     N f
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "\t "   ##将多个连续的制表符压缩为一个制表符
    i A E F
    d q d M
    d e     N f

    将多个字符压缩为指定字符:

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q ddd M
    d e N ffff
    root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
    i A E F$
    d q ddd M$
    d e N ffff$
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "d" "H"   ##将多个d压缩为一个H
    i A E F
    H q H M
    H e N ffff
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -s "df" "H"   ##将d和f同时压缩为H
    i A E F
    H q H M
    H e N H

    6、将某个字符以外的字符替换为指定字符

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q d M
    d e N f
    root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
    i A E F$
    d q d M$
    d e N f$
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -c "d" "Q"   ##将d字符以外的字符全部替换为Q
    QQQQQQQQdQQQdQQQdQQQQQQQroot@DESKTOP-1N42TVH:/home/test#
    root@DESKTOP-1N42TVH:/home/test# cat a.txt |tr -c "d\n" "Q"   ##将d和换行符以外的字符全部替换为Q
    QQQQQQQ
    dQQQdQQ
    dQQQQQQ
    root@DESKTOP-1N42TVH:/home/test# cat a.txt |tr -c "d\n " "Q"  ##将d、换行符、空格以外的字符全部替换为Q
    Q Q Q Q
    d Q d Q
    d Q Q Q

    7、删除指定字符以外的字符

    root@DESKTOP-1N42TVH:/home/test# ls
    a.txt
    root@DESKTOP-1N42TVH:/home/test# cat a.txt
    i A E F
    d q d M
    d e N f
    root@DESKTOP-1N42TVH:/home/test# cat -A a.txt
    i A E F$
    d q d M$
    d e N f$
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -cd "d"   ## 删除d字符以外的所有字符
    dddroot@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -cd "d\n"  ## 删除d和换行符以外的所有字符
    
    dd
    d
    root@DESKTOP-1N42TVH:/home/test# cat a.txt | tr -cd "d\n "  ##删除d、换行符、空格以外的所有字符
    
    d  d
    d
  • 相关阅读:
    VS2013无法启动 IIS Express Web解决办法
    浅谈Java中switch分支语句
    instanceof运算符与引用变量的强制类型转换
    Java语言中null与" "的区别
    Java字符串无意识的递归
    不同编程语言实现输出“HelloWorld!”
    用 C# 来守护 Python 进程
    Python核心技术与实战 笔记
    Python3 系列之 并行编程
    Django + Gunicorn + Nginx 部署之路
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/15766367.html
Copyright © 2011-2022 走看看