linux下的tr命令

Posted hancq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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  铃声\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

字符类:

[: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 \n 
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
 

以上是关于linux下的tr命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux 命令用法

linux 下的启动项

LINUX命令的cp -r 和-R的区别是??

Linux下的I/O与管道

linux系统之tr命令

Linux命令——tr