tr 替换或删除字符

Posted joe.chu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tr 替换或删除字符相关的知识,希望对你有一定的参考价值。

1.命令功能

tr 从标准输入中替换,压缩间隔或者删除字符并从定向到标准输出。

2.语法格式

tr  option  SET1  SET2

参数

参数说明

-c

取代所有SET1中字符串

-d

删除所有SET1中的字符串,不做替换

-s

把连续重复的字符串以单独一个字符表示

-t

先删除第SET1字符串较SET2字符串多出的字符

说明:

SET1:指定要转换或删除原字符集,当执行转换时,必须使用参数SET2中指定的目标字符串;但执行删除操作时,不需要SET2。

SET2:指定要转换成目标字符串。

3.使用范例

范例1 将输入的字符由大写转换成小写

[[email protected] ~]# echo "HELLO WELCOME TO LINUX"

HELLO WELCOME TO LINUX

[[email protected] ~]# echo "HELLO WELCOME TO LINUX" |tr ‘A-Z‘ ‘a-z‘   #大写转换成小写

hello welcome to linux

‘A-Z‘和‘a-z‘都是集合,集合可以自己制定。例如‘a-z0-9’都是集合。

范例2 删除字符串

[[email protected] ~]# echo ‘hello 123456 welcome 586 to linux‘ |tr -d ‘1-9‘

hello  welcome  to linux

[[email protected] ~]# echo ‘hello 123456 welcome 586 to linux‘ |tr -d ‘a-z‘

 123456  586 

范例4 把替换后的内容追加到新的文本中

[[email protected]host ~]# echo "HELLO WELCOME TO LINUX" |tr ‘A-Z‘ ‘a-z‘ < test.txt

-bash: test.txt: 没有那个文件或目录

[[email protected] ~]# touch test.txt

[[email protected] ~]# echo "HELLO WELCOME TO LINUX" |tr ‘A-Z‘ ‘a-z‘ > test.txt

[[email protected] ~]# cat test.txt

hello welcome to linux

[[email protected] ~]# echo ‘hello 123456 welcome 586 to linux‘ |tr -d ‘a-z‘ >> test.txt

[[email protected] ~]# cat test.txt

hello welcome to linux

 123456  586 

范例3 压缩重复字符,每个字符只出现一次

[[email protected] ~]# echo "helllllo welcomeeeee to linuxxxxxx"  |tr -s ‘lex‘

helo welcome to linux

tr 可以使用的字符类集合

[:alnum:]:字母和数字

[:alpha:]:字母

[:cntr1:]:控制(非打印)字符

[:digit:]:数字

[:graph:]:图形字符

[:lower:]:小写字母

[:print:]:可打印字符

[:punct:]:标点符号

[:space:]:空白字符

[:upper:]:大写字母

[:xdigit:]:十六进制字符

使用语法:

tr ‘[:lower:]’‘[:upper:]’

以上是关于tr 替换或删除字符的主要内容,如果未能解决你的问题,请参考以下文章

tr命令实现大小写转换字符替换

替换或删除后台堆栈上现有片段的代码不起作用

Linux常用命令——tr

tr命令

linux之tr

Linux 之 tr 命令