Linux ———— tr 命令用法大全

Linux 中一个非常强大的文本处理工具——tr, 是“translate”的缩写,顾名思义功能跟转化有关,它可以从标准输入读取数据,进行字符级别的操作,并将处理后的结果输出到标准输出。

基本语法格式:
tr [OPTION] SET1 [SET2]
  • SET1:: 要转换或删除的字符集合。
  • SET2: 用来替换 SET1 中对应字符的字符集合(可选)。
  • OPTION:可选参数,如下:

  • -c, -C, --complement: 使用 SET1 的补集,即除了 SET1 中定义的字符外的所有字符。
  • -d, --delete: 删除 SET1 中出现的所有字符。
  • -s, --squeeze-repeats: 将重复出现的字符压缩为单个字符。
  • -t, --truncate-set1: 首先截断 SET1 到与 SET2 相同长度。
常见用法示例:
1.字符转换 

将小写字母转换为大写字母:

当提供两个字符集时,tr 会创建一个从 SET1SET2 的一对一映射。对于输入中的每个字符,如果它出现在 SET1 中,则会被替换为 SET2 中对应的字符。例如,在 'a-z''A-Z' 的映射中,a 会被替换为 Ab 替换为 B,以此类推。

输入:

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

输出:

HELLO
2.删除字符 - d

当仅提供一个字符集并使用 -d 选项时,tr 会从输入中删除所有出现在该字符集中的字符。

输入:

 echo "aa12bb" | tr -d "0-9"

输出:

aabb
3.压缩重复字符 - s 

使用 -s 选项可以压缩连续出现的相同字符,使其只保留一个实例。这通过检查当前字符是否与前一个字符相同来实现。

输入:

echo "1024    one" | tr -s " "

输出:

1024 one

4.使用补集

删除所以非字母的字符

输入:

 echo "hello 666 @#@ wwW" | tr -cd "a-zA-Z"

可使用"[:alpha:]":表示所有字母字符

输出:(换行符也会被删掉哦)

hellowwW

tr 的局限性

  1. 不支持正则表达式

    • tr 只能处理字符级别的操作,无法处理复杂的模式匹配。

  2. 字符集限制

    • tr 只能处理单字节字符(如 ASCII 字符),无法直接处理多字节字符(如 UTF-8 编码的中文字符)。

  3. 功能单一

    • tr 的功能相对单一,适合简单的字符转换和删除操作,复杂的文本处理需要结合其他工具(如 sed 或 awk)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值