【Linux】字符转换命令tr
时间:2014-05-16 19:36:05
收藏:0
阅读:361
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 ‘\r‘ > /root/passwd.linux # 那个 \r 指的是 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 可以使用 \r 来代替之!
参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#pipe_4
评论(0)