tr
命令用于转换或删除文件中的字符,可以读文件也可以从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
tr [OPTION]... SET1 [SET2]
-c, -C, --complement
: 使用SET1
的补码。-d, --delete
: 删除SET1
中的字符,不翻译。-s, --squeeze-repeats
: 用一次出现的字符替换SET1
中列出的重复字符的每个输入序列。-t, --truncate-set1
: 首先将SET1
截断为SET2
的长度。--help
: 输出帮助信息。--version
: 输出版本信息。
\NNN
: 八进制值为NNN
的字符(1
到3
个八进制数字)。\\
: 反斜杠。\a
: 可闻的BEL
。\b
: 退格键。\f
: 换页。\n
: 新行。\r
: 返回。\t
: 水平制表符。\v
: 垂直制表符。CHAR1-CHAR2
: 从CHAR1
到CHAR2
的所有字符按升序排列。[CHAR*]
: 在SET2
中,复制CHAR
直到SET1
的长度。[CHAR*REPEAT]
: 重复CHAR
的副本,如果以0
开头,则重复八进制。[:alnum:]
: 所有字母和数字。[:alpha:]
: 所有字母。[:blank:]
: 所有水平空白。[:cntrl:]
: 所有控制字符。[:digit:]
: 所有数字。[:graph:]
: 所有可打印字符,不包括空格。[:lower:]
: 所有小写字母。[:print:]
: 所有可打印字符,包括空格。[:punct:]
: 所有标点符号。[:space:]
: 所有水平或垂直空白。[:upper:]
: 所有大写字母。[:xdigit:]
: 所有十六进制数字。[=CHAR=]
: 等同于CHAR
的所有字符。
file.txt
文件内容如下。
Hello World
将文件中的字母全部转换为大写。
cat file.txt | tr [a-z] [A-Z]
# HELLO WORLD
同样可以使用[:lower]
与[:upper]
参数来实现。
cat file.txt | tr [:lower:] [:upper:]
# HELLO WORLD
将水平空白符转换为\t
。
cat file.txt | tr [:space:] "\t"
# Hello World
删除所有o
字符。
cat file.txt | tr -d "o"
# Hell Wrld
删除所有数字。
echo "My ID is 73535" | tr -d [:digit:]
# My ID is
取出字符串中的数字。
echo "My ID is 73535" | tr -cd [:digit:]
# 73535
https://github.com/WindrunnerMax/EveryDay
https://www.runoob.com/linux/linux-comm-tr.html
https://www.tutorialspoint.com/unix_commands/tr.htm
https://www.geeksforgeeks.org/tr-command-in-unix-linux-with-examples/