Linux下tr的用法

来源:互联网 发布:python for怎么用 编辑:程序博客网 时间:2024/05/18 03:17

1.关于tr
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。
tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
带有最常用选项的tr命令格式为:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

2.字符范围
使用tr时,可以指定字符串列表或范围作为形式字符串的模式。这看起来很像正则表达式,但实际上不是。
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。

像大多数系统工具一样,tr也受特定字符的影响。因此如果要匹配这些字符,需使用反斜线屏蔽其特殊含义。
tr中特定控制字符的不同表达方式

速记符 含义 八进制方式
/a Ctrl-G 铃声 /007
/b Ctrl-H 退格符 /010
/f Ctrl-L 走行换页 /014
/n Ctrl-J 新行 /012
/r Ctrl-M 回车 /015
/t Ctrl-I tab键 /011
/v Ctrl-X /030

3.应用示例

1)去除重复出现的字符并保存输出结果(将之重定向到一个文件)。
tr -s "[a-z]" < input.out > output.out
2)删除空行
tr -s "[/n]" < input.out
或者
tr -s "[/012]" < input.out
3)大小写转换
tr "[a-z]" [A-Z] < input.out | tr "[:upper:]" "[:lower:]"
4)删除指定字符
tr -d "[a-z][A-Z]" < input.out
5)删除/r并用/n代替
tr -s "[/r]" "[/n]" < input.out

 

 

原创粉丝点击