tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或者进行字符转换。
命令格式为:
tr –c –d –s [“string1_to_translate_from”] [“string2_to_translate_to”]file
-c :用字符串1中字符集的补集替换此字符集,要求字符集为ASCII
-d :删除字符串1中所有输入字符
-s :删除所有重复出现的字符序列,只保留第一个
字符范围
使用tr时,可以指定字符串列表或范围作为形成字符串的模式。这看起来很像正则表达式,但实际并不是,指定字符串内容时,只能使用单字符或字符串范围或列表
[a-z] :a-z内的字符组成的字符串
[A-Z] :A-Z内的字符组成的字符串
[0-9] :数字串
/octal :一个三位的八进制数,对应有效的ASCII字符
[O*n] :表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串
在tr中也有部分特定控制字符,如果要匹配这些字符,需要用反斜杠屏蔽,比如\{开指定花括号左边。特定控制字符如下:
tr支持重定向保存输出结果
tr –s “[a-z]”< oops.txt >results.txt 将输出重定向到文件results.txt,输入文件时oops.txt
tr主要用于字符转换或者抽取控制字符,虽然都可以用sed来完成,但是tr更加快捷,容易。