# tr - 将字符进行替换压缩和删除

删除或者更改文件中的字符串,这个指令一般需要两个字符集。

# 适用范围

RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux

# 语法

tr  [选项]  set1  set2

# 选项

-c, -C, --complement     # 使用SET1的补码
-d, --delete             # 删除字符集1中指定的内容
-s, --squeeze-repeats    # 将set1中重复出现的内容,替换成单次出现的内容
-t, --truncate-set1      # 首先将SET1按照SET2的长度截断

--help                   # 显示帮助文档
--version                # 显示命令版本信息
\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,并在翻译或删除后发生。

# 举例

[sogrey@bogon newDir2]$ cat test.c
You no longer send out energy of desperation or the need to be filled from the outside.
[sogrey@bogon newDir2]$ tr -s a-z A-Z < test.c  # 将文件中的小写字母替换成大写
YOU NO LONGER SEND OUT ENERGY OF DESPERATION OR THE NED TO BE FILED FROM THE OUTSIDE.
[sogrey@bogon newDir2]$ tr -d send < test.c # 内容输出,然后删除出现的字符
You o logr  out rgy of pratio or th  to b fill from th outi.
[sogrey@bogon newDir2]$