tr命令:替换文本中的字符
一、命令简介
tr
命令用于转换或删除文件中的字符。它可以从标准输入中读取数据,对数据进行字符替换、删除或压缩,并将结果输出到标准输出。
二、命令参数
格式
tr [选项] [集合1] [集合2]
选项和参数
-
-c
: 指定 集合 1 的补集。 -
-d
: 删除 集合 1 中所有字符。 -
-s
: 压缩 集合 1 中重复的字符。 -
-t
: 指定转换时使用的字符集。 -
-u
: 将 集合 1 中的小写字母转换为大写字母。 -
-
: 用于指定字符范围,如[a-z]
表示所有小写字母。 -
--help
: 显示帮助信息。 -
--version
: 显示版本信息。
三、命令示例
示例 1:替换字符
将输入中的所有小写字母转换为对应的大写字母。
echo "hello world" | tr 'a-z' 'A-Z'
输出:
HELLO WORLD
示例 2:删除字符
从输入中删除所有数字。
echo "Hello 123 World 456" | tr -d '0-9'
输出:
Hello World
示例 3:压缩重复字符
将输入中连续的重复字符压缩为一个字符。
echo "aaabbbccc" | tr -s 'a-z'
输出:
abc
示例 4:使用字符类
删除输入中的所有空白字符(包括空格、制表符和换行符)。
echo -e "Hello World\n\n" | tr -d '[:space:]'
输出:
HelloWorld
输出比平时少一个换行符
示例 5:使用集合操作
删除输入中的所有字母和数字。
echo "你好世界Hello123World" | tr -d '[:alnum:]'
输出:
你好世界
示例 6:替换集合
将所有小写字母 a
替换为大写字母 A
,将所有小写字母 b
替换为大写字母 B
。
echo "aabbcc" | tr 'ab' 'AB'
输出:
AABBcc
示例 7:使用文件
将文件 file.txt
中的所有小写字母转换为大写字母,并将结果保存到 file.upper.txt
。
tr 'a-z' 'A-Z' < file.txt > file.upper.txt
file.txt 和 file.upper.txt 内容
Hello World.
你好世界。
#file.upper.txt
HELLO WORLD.
你好世界。
这些示例展示了 tr
命令的一些基本用法。tr
命令非常灵活,可以用于各种文本处理任务。
4.注意事项
-
tr
只能在单个字符级别上进行操作,它不支持正则表达式。 -
tr
命令是基于字符的,不支持处理多字节字符,因此在处理 Unicode 字符时可能会出现问题。 - 在使用字符范围时,确保范围的正确性,否则可能产生意外的结果。
- 注意
tr
命令通常是用来处理文本数据,对于二进制数据的处理可能会导致意料之外的结果。 - 如果要保存处理的结果,只需要将输出重定位到文件。