从0开始学习shell--tr工具的使用

tr工具
Tr 用于字符转换,替换和删除
用法一:命令的执行结果交给tr处理,str1用于查询,str2用于转换处理
Command | tr ‘str1’ ‘str2’
用法二:tr处理的内容来自文件,< 标准输入
Tr ‘str1’ ‘str2’ < filename
用法三:匹配文件中的str1进行相应的操作,如删除操作
tr option ‘str1’ < filename

-d 删除字符串中所有输入字符
-s 删除所有重复出现字符序列,只保留第一个:即将重复出现字符压缩为一个字符串

(1)替换功能
[root@localhost tmp]# cat /tmp/passwd | head | tee 1.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
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost tmp]# cat 1.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
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost tmp]# tr 'a-z' 'A-Z' < 1.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
OPERATOR:X:11:0:OPERATOR:/ROOT:/SBIN/NOLOGIN
[root@localhost tmp]#

[root@localhost tmp]# cat 1.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
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost tmp]# tr ':/' '#' < 1.txt tr是一个字符一个字符的替换,将:或者/替换成#
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
operator#x#11#0#operator##root##sbin#nologin

[root@localhost tmp]# tr ':,/' '#' < 1.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
operator#x#11#0#operator##root##sbin#nologin

空格也是一个字符
[root@localhost tmp]# cat 1.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
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost tmp]# tr ': /' '#' < 1.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
operator#x#11#0#operator##root##sbin#nologin
[root@localhost tmp]#

‘,’也是可以替换的一个字符
[root@localhost tmp]# cat 1.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
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost tmp]# tr ':,/' '#' < 1.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
operator#x#11#0#operator##root##sbin#nologin
[root@localhost tmp]#

(2)删除字符
删除所有的小写字符
[root@localhost tmp]# cat 1.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
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost tmp]# tr -d 'a-z' < 1.txt
::0:0::/://
::1:1::/://
, : :2:2::/://
::3:4:://://
::4:7::///://
::5:0::/://
::6:0::/://
::7:0::/://
::8:12::///://
::11:0::/://
[root@localhost tmp]#
(3)压缩功能
删除连续的小写字母
[root@localhost tmp]# cat 1.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
operator:x:11:0:operator:/root:/sbin/nologin
aaaabbbbbaaaccc
abcabc
[root@localhost tmp]#
[root@localhost tmp]#

[root@localhost tmp]# tr -s 'a-z' < 1.txt
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
operator:x:11:0:operator:/rot:/sbin/nologin
abac
abcabc
[root@localhost tmp]#

上一篇:从0开始学习shell--tr工具的使用


下一篇:Linux 文件查看命令