从标准输入中替换,压缩或删除字符,写入标准输出。
语法:
tr [option]... set1 [set2]
选项:
-c:取代所有不属于set1的字符;
-d:删除所有属于set1的字符(与c结合就是删除所有不属于set1的字符);
-s:把连续的字符,只保留一个字符;
-t:将set1截断为set2的长度,即删除set1比set2多出的字符数。
set是一串字符串:
\NNN 八进制值为NNN 的字符(1 至3 个数位)
\\ 反斜杠
\a 终端鸣响
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
字符1-字符2 从字符1 到字符2 的升序递增过程中经历的所有字符
[字符*] 在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度
[字符*次数] 对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数
[:alnum:] 所有的字母和数字,相当于[a-zA-Z0-9]
[:alpha:] 所有的字母,相当于[a-zA-Z]
[:blank:] 所有呈水平排列的空白字符
[:cntrl:] 所有的控制字符
[:digit:] 所有的数字,相当于[0-9]
[:graph:] 所有的可打印字符,不包括空格
[:lower:] 所有的小写字母,相当于[a-z]
[:print:] 所有的可打印字符,包括空格
[:punct:] 所有的标点字符
[:space:] 所有呈水平或垂直排列的空白字符
[:upper:] 所有的大写字母,相当于[A-Z]
[:xdigit:] 所有的十六进制数
[=字符=] 所有和指定字符相等的字符
实例:
1:将小写字母换成大写字母:
2:将所有除了小写字母和换行符以外的字符换成空白符:
3:删除除了大写字母和标点符号和换行符的其他字符:
4:压缩重复字符“fd g”:
5:根据上题,将“fd g”压缩并替换成“1-4”: