tr命令

tr 是 Linux 中用于转换或删除字符的命令。它从标准输入读取数据,并对输入中的字符进行替换、压缩或删除操作,最后将结果输出到标准输出。常见用法包括字符大小写转换、删除特定字符或字符压缩。

基本语法:

tr [OPTION] SET1 [SET2]
  • SET1:要替换的字符集。
  • SET2:要替换成的字符集(与 SET1 对应)。
  • OPTION:可选的参数,用于修改命令的行为。

常见选项:

  • -d:删除指定的字符。
  • -s:压缩重复的字符。
  • -c:对 SET1 进行取反操作,处理不在 SET1 中的字符。

示例:

1. 字符大小写转换

将输入的所有小写字母转换为大写字母:

echo "hello world" | tr 'a-z' 'A-Z'

输出:

HELLO WORLD

2. 删除指定字符

使用 -d 选项删除字符串中的所有空格:

echo "hello world" | tr -d ' '

输出:

helloworld

3. 压缩连续的字符

使用 -s 选项可以将连续的相同字符压缩成一个字符。例如,压缩字符串中的连续空格:

echo "hello    world" | tr -s ' '

输出:

hello world

4. 字符替换

将输入的所有数字替换为 #

echo "phone number 12345" | tr '0-9' '#'

输出:

phone number #####

5. 取反操作(-c 选项)

将所有非字母字符转换为 *

echo "hello 123!" | tr -c 'a-zA-Z' '*'

输出:

hello****!

6. 删除换行符

删除输入中的所有换行符:

echo -e "line1\nline2\nline3" | tr -d '\n'

输出:

line1line2line3

7. 删除所有非字母字符

echo "hello123!@#world" | tr -cd 'a-zA-Z'

输出:

helloworld