linux tr命令
字符转换命令: tr, col, join, paste, expand
回到顶部tr
回到顶部[peter@study ~]$ tr [-ds] SET1 ...选项与参数:
-d :删除信息当中的 SET1 这个字符串;将 last 输出的信息中,所有的小写变成大写字符:
-s :取代掉重复的字符!
[peter@study ~]$ last | tr '[a-z]' '[A-Z]'没有加上单引号也是可以执行的,如:last | tr [a-z] [A-Z]
将/etc/passwd输出的信息中,将冒号(:)删除:
[peter@study ~]$ cat /etc/passwd | tr -d ':'将/etc/passwd转存成dos断行到/root/passwd中,再将^M符号删除:
[peter@study ~]$ cp /etc/passwd ~/passwd && unix2dos ~/passwd [peter@study ~]$ file /etc/passwd ~/passwd /etc/passwd: ASCII text /home/peter/passwd: ASCII text, with CRLF line terminators #就是 DOS 断行 [peter@study ~]$ cat ~/passwd | tr -d '\r' > ~/passwd.linux # 那个 \r 指的是 DOS 的断行字符,关于更多的字符,请参考 man tr [peter@study ~]$ ll /etc/passwd ~/passwd* -rw-r--r--. 1 root root 2092 Jun 17 00:20 /etc/passwd -rw-r--r--. 1 peter peter 2133 Jul 9 22:13 /home/peter/passwd -rw-rw-r--. 1 peter peter 2092 Jul 9 22:13 /home/peter/passwd.linux# 处理过后,发现文件大小与原本的 /etc/passwd 就一致了!
其实这个命令也可以写在『正规表示法』里头!因为他也是由正规表示法的方式来取代数据的! 以 上面的例子来说,使用 [] 可以设定一串字呢!也常常用来取代文件中的怪异符号! 例如上面第三 个例子当中,可以去除 DOS 文件留下来的 ^M 这个断行的符号!这东西相当的有用!相信处理Linux & Windows 系统中的人们最麻烦的一件事就是这个事情啦! 亦即是 DOS 底下会自动的在每行行尾加入 ^M 这个断行符号!这个时候除了以前讲过的 dos2unix 之外,我们也可以使用这个 tr 来 将 ^M 去除! ^M 可以使用 \r 来代替之!
本文由initroot编辑整理,转载请注明www.initroot.com
100次点赞
100次阅读