tr - translate or delete characters 替换或删除字符
常用选项的tr命令格式为:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] file
选项说明:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
字符范围:
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
注:使用以上字符的时候放在""中,以免出现如下类似错误
[root@kumu ~]# tr -d [a-z] <test.txt
tr: 额外的操作数 “d”
请尝试执行“tr --help”来获取更多信息。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G 铃声\007
\b Ctrl-H 退格符\010
\f Ctrl-L 走行换页\014
\n Ctrl-J 新行\012
\r Ctrl-M 回车\015
\t Ctrl-I tab键\011
\v Ctrl-X \030
[root@kumu ~]# cat kumu.txt
facebook
FACEBOOK
aaaaaaaa
11111111
33333333
[root@kumu ~]# tr -s "[a-z]"<kumu.txt //去重,去掉重复的小写字母
facebok
FACEBOOK
a
11111111
33333333
[root@kumu ~]# tr -s "[a-z][A-Z]"<kumu.txt //去重,去大小写重复字母
facebok
FACEBOK
a
11111111
33333333
[root@kumu ~]# tr -s "[a-z][A-Z][0-9]"<kumu.txt //去重大小写和数字
facebok
FACEBOK
a
1
3
[root@kumu ~]#
[root@kumu ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@kumu ~]# tr -d : <test.txt //删除指定字符:
rootx00root/root/bin/bash
binx11bin/bin/sbin/nologin
[root@kumu ~]# tr -d ":/" <test.txt //删除指定字符:和/
rootx00rootrootbinbash
binx11binbinsbinnologin
[root@kumu ~]# tr -d "[a-z]" <test.txt
::0:0::/://
::1:1::/://
[root@kumu ~]# tr -d -c "[a-z]" <test.txt //-c参数取补集,删除非小写字母
rootxrootrootbinbashbinxbinbinsbinnologin[root@kumu ~]#
[root@kumu ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@kumu ~]# tr ":" "#" <test.txt //:号替换为#
root#x#0#0#root#/root#/bin/bash
bin#x#1#1#bin#/bin#/sbin/nologin
[root@kumu ~]#
tr联合其它命令求和:
[root@kumu ~]# seq 20 30 | xargs | tr " " "+" | bc
275
[root@kumu ~]#
常用选项的tr命令格式为:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] file
选项说明:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
字符范围:
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
注:使用以上字符的时候放在""中,以免出现如下类似错误
[root@kumu ~]# tr -d [a-z] <test.txt
tr: 额外的操作数 “d”
请尝试执行“tr --help”来获取更多信息。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G 铃声\007
\b Ctrl-H 退格符\010
\f Ctrl-L 走行换页\014
\n Ctrl-J 新行\012
\r Ctrl-M 回车\015
\t Ctrl-I tab键\011
\v Ctrl-X \030
[root@kumu ~]# cat kumu.txt
aaaaaaaa
11111111
33333333
[root@kumu ~]# tr -s "[a-z]"<kumu.txt //去重,去掉重复的小写字母
facebok
a
11111111
33333333
[root@kumu ~]# tr -s "[a-z][A-Z]"<kumu.txt //去重,去大小写重复字母
facebok
FACEBOK
a
11111111
33333333
[root@kumu ~]# tr -s "[a-z][A-Z][0-9]"<kumu.txt //去重大小写和数字
facebok
FACEBOK
a
1
3
[root@kumu ~]#
[root@kumu ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@kumu ~]# tr -d : <test.txt //删除指定字符:
rootx00root/root/bin/bash
binx11bin/bin/sbin/nologin
[root@kumu ~]# tr -d ":/" <test.txt //删除指定字符:和/
rootx00rootrootbinbash
binx11binbinsbinnologin
[root@kumu ~]# tr -d "[a-z]" <test.txt
::0:0::/://
::1:1::/://
[root@kumu ~]# tr -d -c "[a-z]" <test.txt //-c参数取补集,删除非小写字母
rootxrootrootbinbashbinxbinbinsbinnologin[root@kumu ~]#
[root@kumu ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@kumu ~]# tr ":" "#" <test.txt //:号替换为#
root#x#0#0#root#/root#/bin/bash
bin#x#1#1#bin#/bin#/sbin/nologin
[root@kumu ~]#
tr联合其它命令求和:
[root@kumu ~]# seq 20 30 | xargs | tr " " "+" | bc
275
[root@kumu ~]#
转载于:https://blog.51cto.com/kumu1988/755362