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