tr

删除或者更改文件中的字符串,这个指令一般需要两个字符集。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法

tr [选项]  set1 set2

 

2、选项列表

选项

说明

--help

显示帮助文档

--version

显示版本信息

-c | -C | --complement

使用SET1的补码

-d | --delete

删除字符集1中指定的内容

-s | --squeeze-repeats

将set1中重复出现的内容,替换成单次出现的内容

-t | --truncate-set1

首先将SET1按照SET2的长度截断

集合指定为字符串。大多数人代表自己。解释序列是:

序列

说明

\NNN

具有八进制值nnn的字符(1到3位八进制数字)

\\

反斜线符号

\a

可听BEL

\b

(键盘的)退格键

\f

换页

\n

换行

\r

返回

\t

水平tab

\v

垂直tab

CHAR1-CHAR2

从CHAR 1到CHAR 2的所有字符按升序排列

[CHAR*]

拷贝set2中的字符,长度为set1的长度

[CHAR*REPEAT]

重复拷贝

[:alnum:]

所有字母和数字

[:alpha:]

所有字母

[:blank:]

所有的水平空白

[:cntrl:]

所有的控制字符

[:digit:]

所有的数字

[:graph:]

所有的可打印的字符,不包括空格

[:lower:]

所有的小写字母

[:print:]

所有的可打印字符,包括空格

[:punct:]

所有标点符号

[:space:]

所有的水平和垂直空格

[:upper:]

所有的大写字母

[:xdigit:]

所有的十六进制数字

[=CHAR=]

所有等价于CHAR的字符

如果没有给出‘-d’,同时出现SET1和SET2,则会发生翻译。‘-t’只能在翻译时使用。通过在必要时重复SET1的最后一个字符,Set2被扩展到SET1的长度。Set2的多余字符将被忽略。只有[:lower:]和[:upper:]保证按升序展开;在set2翻译时使用,它们只能成对使用以指定大小写转换。‘-s’在不翻译或删除时使用SET1;压缩使用SET2,并在翻译或删除后发生。

     

3、实例

1)删除内容

[root@localhost weijie]# cat 1.c

hello world, i am david. i love linux, love code.

[root@localhost weijie]# tr -d hello < 1.c        //1.c的内容输出到tr,然后删除出现的字符

 wrd, i am david. i v inux, v cd.                   //这里并不是删除一个单词hello,而是删除出现的这5个字母

2)将文件中的小写字母替换成大写

[root@localhost weijie]# tr -s a-z A-Z < 1.c

HELO WORLD, I AM DAVID. I LOVE LINUX, LOVE CODE.