tr命令是一个用于转换或删除字符的实用工具echo "hello" | tr 'a-z' 'A-Z'echo "hello" | tr 'a-z' 'A-Z'。它可以在输入中对字符进行替换、删除或压缩,并将结果输出到标准输出。tr命令的基本语法如下:
tr [OPTION]... SET1 [SET2]
SET1表示要进行替换或删除的字符集合,SET2表示替换的目标字符集合。如果省略SET2,则tr命令将删除SET1中的字符。
例如,要将输入中的小写字母转换为大写字母:
echo "hello" | tr 'a-z' 'A-Z'
最终输出HELLO。
基本字符操作
(1) 替换字符
echo "Hello, World" | tr 'Hello' 'No Hello'
把字符串中的"Hello"替换为"No Hello",输出结果为No Hello, World
(2) 字符范围替换
echo "Hello" | tr 'H-l' 'X'
把字符串中的"Hello"中'H-l'替换为"X",输出结果为XXXXo
(3) 多字符替换
echo "Hello" | tr 'Ho' 'QWERT'
把字符串中的"Hello"中'H'替换为"Q",'o'替换为'W',输出结果为QellW
(4) 删除字符
echo "要删除的字符" | tr -d "要删除的字符"
要删除字符串中的所有空格,可以使用以下命令:
echo "Hello World" | tr -d " "
输出结果HelloWorld。
字符集转换
(1) 大小写转换
echo "Hello, World!" | tr '[:lower:]' '[:upper:]'
把字符串中的小写字母转换为大写字母,输出结果为HELLO, WORLD!
(2) 转换字符集
echo "Hello, World!" | tr -t 'llo' 'ooo'
输出结果Heooo, World!。
去重和压缩字符
(1) 去重字符
echo "hello" | tr -s 'l'
将字符串"hello"中的重复字符"l"去重,输出结果为helo。
(2) 压缩空白字符
echo "he ll o" | tr -s ' ' # 压缩连续的空格为一个空格
将连续的空格字符压缩为一个空格字符,输出结果为he ll o。
转义字符
(1) 转义换行符
echo "Hello\nWorld" | tr '\n' ','
注意图中输出末尾,%是由于命令行中按回车执行指令,也相当于替换了一个\n,%是命令行的下一行输出。
把Hello\nWorld的换行符替换为逗号,输出结果为Hello,World。
(2) 转义制表符
echo "Hello\tWorld" | tr '\t' '-'
把Hello\tWorld的制表符替换为-,输出结果为Hello-World。