linux下的tr命令

1、使用方法

tr命令可以对来自标准输入的字符进行替换、压缩和删除。
-c或--complerment:取代所有不属于第一字符集的字符;
-d或--delete:删除所有属于第一字符集的字符; 
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示; 
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
注意:tr命令只改变输出显示效果,不改变实际输入源内容。在替换、删除文件内容时需要重定向输出。

2、字符范围

指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
a Ctrl-G  铃声07
 Ctrl-H  退格符10
f Ctrl-L  走行换页14
Ctrl-J  新行12
Ctrl-M  回车15
Ctrl-I  tab键11
v Ctrl-X  30

字符类:

[:alnum:]:字母和数字 

[:alpha:]:字母 

[:cntrl:]:控制(非打印)字符 

[:digit:]:数字 

[:graph:]:图形字符 

[:lower:]:小写字母 

[:print:]:可打印字符 

[:punct:]:标点符号 

[:space:]:空白字符 

[:upper:]:大写字母 

[:xdigit:]:十六进制字符

3. 应用实例

(1)将输入字符由大写转换为小写:
echo "HELLO WORLD" | tr '[A-Z]' '[a-z]' 
hello world
(2)删除字符
echo "hello 123 world 456" | tr -d '0-9' 
hello world 
(3)删除字符的补集
echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 
' 
1 2 3 4
(4)压缩重复的字符
echo "thissss is a text linnnnnnne." | tr -s ' sn' 
this is a text line.
(5)替换文件内容
cat file | tr 'abc' 'ABC' > newfile
 
原文地址:https://www.cnblogs.com/hancq/p/5539981.html