zoukankan      html  css  js  c++  java
  • 【Linux】字符转换命令tr

      tr (traslate的缩写)可以用来删除一段信息当中的文字,或者是进行文字信息的替换!

    [root@www ~]# tr [-ds] SET1 ...
    选项与参数:
    -d  :删除信息当中的 SET1 这个字符串;
    -s  :取代掉重复的字符!
    
    范例一:将 last 输出的信息中,所有的小写变成大写字符:
    [root@www ~]# last | tr '[a-z]' '[A-Z]'
    # 事实上,没有加上单引号也是可以运行的,如:『 last | tr [a-z] [A-Z] 』
    
    范例二:将 /etc/passwd 输出的信息中,将冒号 (:) 删除
    [root@www ~]# cat /etc/passwd | tr -d ':'
    
    范例三:将 /etc/passwd 转存成 dos 断行到 /root/passwd 中,再将 ^M 符号删除
    [root@www ~]# cp /etc/passwd /root/passwd && unix2dos /root/passwd
    [root@www ~]# file /etc/passwd /root/passwd
    /etc/passwd:  ASCII text
    /root/passwd: ASCII text, with CRLF line terminators <==就是 DOS 断行
    [root@www ~]# cat /root/passwd | tr -d '
    ' > /root/passwd.linux
    # 那个 
     指的是 DOS 的断行字符,关于更多的字符,请参考 man tr
    [root@www ~]# ll /etc/passwd /root/passwd*
    -rw-r--r-- 1 root root 1986 Feb  6 17:55 /etc/passwd
    -rw-r--r-- 1 root root 2030 Feb  7 15:55 /root/passwd
    -rw-r--r-- 1 root root 1986 Feb  7 15:57 /root/passwd.

      其实这个命令也可以写在『正规表示法』里头!因为他也是由正规表示法的方式来取代数据的! 以上面的例子来说,使用 [] 可以配置一串字呢!也常常用来取代文件中的怪异符号! 例如上面第三个例子当中,可以去除 DOS 文件留下来的 ^M 这个断行的符号!这东西相当的有用!相信处理 Linux & Windows 系统中的人们最麻烦的一件事就是这个事情啦!亦即是 DOS 底下会自动的在每行行尾加入 ^M 这个断行符号!这个时候我们可以使用这个 tr 来将 ^M 去除! ^M 可以使用 来代替之!

      参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#pipe_4

  • 相关阅读:
    【LG3231】[HNOI2013]消毒
    【LG3230】[HNOI2013]比赛
    【LG3236】[HNOI2014]画框
    【BZOJ3142】[HNOI2013]数列
    【BZOJ2395】[Balkan 2011]Timeismoney
    【CF613D】Kingdom and its Cities
    【LG4103】[HEOI2014]大工程
    【LG3320】[SDOI2015]寻宝游戏
    【LG4841】城市规划
    【CF960G】Bandit Blues
  • 原文地址:https://www.cnblogs.com/ningvsban/p/3725428.html
Copyright © 2011-2022 走看看