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