tr,用来从标准输入中通过替换/删除进行字符转换
主要用于删除文件中的控制字符或进行字符转换
使用时,提供两个字符串,串1:用于查询,串2:用于处理各种转换;串1的字符被映射到串2上,然后转换开始
主要用途:1.大小写转换
2.去除控制字符
3.删除字符
命令格式:
tr –c –d –s [“str_from”] [“str_to”] file
-c,用字符串1中字符集的补集替换此字符集,要求字符集为ASCII
-d,删除字符串1中所有输入字符串
-s,删除所有重复出现字符序列,只保留一个,即重复字符串压缩为一个
字符范围——tr,可以指定字符串列表或范围作为形成字符串的模式,似正则,但不是正则。
[a-z] [A-Z] [0-9] /octal一个三位八进制数,对应有效ASCII字符
[s*n]字符s出现n次
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 |
1. 去除所有重复字符【只保留一个】
$tr –s “[a-z]” < oops.txt
2. 去除空行
$tr –s “[/012]” <oops.txt
$tr –s “[/n]” <oops.txt
3. 小写转大写
$echo “AbcdefG” | tr “[a-z]” “[A-Z]”
$echo “AbcdefG” | tr “[:lower:]” “[:upper:]”
4. 删除指定字符串
$tr –cs “[a-z][A-Z]” “[/012*]” < data.txt
将非字母字符转为新行 -s压缩重复的字符
5. 转换控制字符
$tr –s “[/136]” “[/011*]” < start.txt
6. 快速转换
$tr –s “[/r]” “[/n]” < input.txt
7. 匹配多于一个字符
$tr “[0*4]” “*”< input.txt