一、常用用法
有3种常用的模式,因而有3种常用用法,分别介绍如下。
1.1、删除
1 | 其他命令的输出 | tr [--complement] -d SET |
1.2、去重
1 | 其他命令的输出 | tr [--complement] -s SET |
1.3、替换
1 | 其他命令的输出 | tr SET1 SET2 |
二、含义与选项
2.1、含义
相应于3种常用用法,含义分别介绍如下。
2.1.1、删除
对于标准输入内容,如果未指定“–complement”选项,表示删除其中属于“SET”的字符,进行打印;如果指定“–complement”选项,表示删除其中属于“SET补集”的字符,进行打印。
2.1.2、去重
对于标准输入内容,如果未指定“–complement”选项,当其中存在一个子串,子串的长度大于1,子串只由1个字符构成,且该字符属于“SET”,那么进行去重,即以构成该子串的字符代替该子串;如果指定“–complement”选项,将“字符属于‘SET’”的条件改为“字符属于‘SET补集’”。
2.1.3、替换
对于标准输入内容,其中的任意一个字符,只要该字符属于“SET1”,那么就以“SET2”中相应位置的字符进行替换。
2.2、选项表示的意思
“–complement”:表示使用显式所指定集合的补集。
“-d”:表示“删除”模式。
“-s”:表示“去重”模式。
三、“SET”集合表示方法
对于“SET”集合的表示最常用的有两种方法,分别是:枚举法和范围法。
3.1、枚举法
枚举出构成“SET”集合的所有元素,比如“abcde”。
3.2、范围法
指定“SET”集合的“首端元素”和“尾端元素”,以“-”相连接,比如“[a-z]”。注意我们是在“递增”的语境中,确定“首端元素”和“尾端元素”的,比如对于“abc…xyz”这26个小写英文字母,在“递增”的语境中,“首端元素”是“a”,“尾端元素”是“z”。
备注:
允许以转义形式表达某些特殊字符,比如“\n”,“\t”和“\r”等。
四、一些例子
4.1、删除
1、例子1
执行命令:
1 | echo "hello world" | tr -d "abcde" |
所得结果如图1所示:
图1
2、例子2
执行命令:
1 | echo "hello world" | tr --complement -d "abcde\n" |
所得结果如图2所示:
图2
4.2、去重
1、例子1
执行命令:
1 | echo "hellllo" | tr -s "l" |
所得结果如图3所示:
图3
2、例子2
执行命令:
1 | echo "hellllo" | tr --complement -s "abcde" |
所得结果如图4所示:
图4
4.3、替换
1、例子1
执行命令:
1 | echo "hello world" | tr "[a-z]" "[A-Z]" |
所得结果如图5所示:
图5