首页 >> 学习 >> Linux常用命令 >> tr
tr命令

本节重要性:★★★☆☆    本节难度:★★★★☆

tr是translate的缩写,该命令可以将一个字符替换成另一个字符。其实,tr可以完成的任务,都可以用sed来完成,但tr用起来要简单得多,而且运行速度也要快一些。与大部分过滤器命令不一样,tr只能接受标准输入的数据,而不能从文件读取。

命令用途

替换或删除标准输入的指定字符,并输出到标准输出

命令格式

tr [option] SET1 [SET2]

常用选项

-d	删除字符

常见用法

tr命令用来替换时,应有2个参数,SET1和SET2,如果参数中不包含空白字符,参数两边的引号可以省略。如将文本中的a替换成A:

[peter@ibi98 tr]$ cat demo_wc_3
Amylase is an important and indispensable enzyme that
plays a pivotal role in the field of biotechnology. It is
produced mainly from microbial sources and is used in many
industries.
[peter@ibi98 tr]$ cat demo_wc_3 |tr 'a' 'A'
AmylAse is An importAnt And indispensAble enzyme thAt
plAys A pivotAl role in the field of biotechnology. It is
produced mAinly from microbiAl sources And is used in mAny
industries.

参数如果包含多个字符,分三种情况:

SET1与SET2字符数相同	SET1的字符依次替换成SET2的字符;
SET1大于SET2的字符数	SET1多出的字符替换成SET2的最后一个字符;
SET1小于SET2的字符数	SET2多余的字符不使用

如下面的3个例子:

[peter@ibi98 tr]$ cat demo_wc_3 |tr 'ab' 'AB'
AmylAse is An importAnt And indispensABle enzyme thAt
plAys A pivotAl role in the field of Biotechnology. It is
produced mAinly from microBiAl sources And is used in mAny
industries.
[peter@ibi98 tr]$ cat demo_wc_3 |tr 'abc' 'AB'
AmylAse is An importAnt And indispensABle enzyme thAt
plAys A pivotAl role in the field of BioteBhnology. It is
produBed mAinly from miBroBiAl sourBes And is used in mAny
industries.
[peter@ibi98 tr]$ cat demo_wc_3 |tr 'ab' 'ABC'
AmylAse is An importAnt And indispensABle enzyme thAt
plAys A pivotAl role in the field of Biotechnology. It is
produced mAinly from microBiAl sources And is used in mAny
industries.

对于字母和数字等连续的符号,可以用C1-C2这种写法表示范围,如:

[peter@ibi98 tr]$ cat demo_wc_3 |tr 'b-d' 'B-D'
Amylase is an important anD inDispensaBle enzyme that
plays a pivotal role in the fielD of BioteChnology. It is
proDuCeD mainly from miCroBial sourCes anD is useD in many
inDustries.

tr还有一些表示集合的符号,如将小写字母转换成大写字母可以用下面的集合符号:

[peter@ibi98 tr]$ cat demo_wc_3 |tr '[:lower:]' '[:upper:]'
AMYLASE IS AN IMPORTANT AND INDISPENSABLE ENZYME THAT
PLAYS A PIVOTAL ROLE IN THE FIELD OF BIOTECHNOLOGY. IT IS
PRODUCED MAINLY FROM MICROBIAL SOURCES AND IS USED IN MANY
INDUSTRIES.

tr表示集合的符号有:

[:alnum:]	所有字母字符与数字
[:alpha:]	所有字母字符
[:blank:]	所有水平空格(空格、制表符)
[:cntrl:]	所有控制字符
[:digit:]	所有数字
[:graph:]	所有可打印的字符(不包含空格符)
[:lower:]	所有小写字母
[:print:]	所有可打印的字符(包含空格符)
[:punct:]	所有标点字符
[:space:]	所有水平与垂直空格符
[:upper:]	所有大写字母
[:xdigit:]	所有16进位制的数字

如果用-d选项删除字符,则只需要一个参数,如:

[peter@ibi98 tr]$ cat demo_wc_3 |tr -d '[:blank:]'
Amylaseisanimportantandindispensableenzymethat
playsapivotalroleinthefieldofbiotechnology.Itis
producedmainlyfrommicrobialsourcesandisusedinmany
industries.

处理文本时,如果需要进行简单的字符替换或删除,tr命令是很好的选择。

<<上一节  下一节>>