【shell】tr

tr本意是traslate,转换。

用法是:tr [options] 'set1' 'set2'

解释:tr命令只能以stdin为输入,把输入的内容里set1的内容替换为对应的set2的内容。如果set1和set2长度相等,那么这就是一个一对一的映射,如果set1比set2多,那么set1多出来的部分会对应set2最后一个,反之,set2多出来的部分想会被忽略。

如果是连续的字符,我们可以使用'a-z' 这样的形式。如果不连续,那么就是三个字符。

这个命令是处理简易文本内容的比较好用的命令。

只能接受stdin意味着,它只能使用管道的方式来获取前一个命令的输出作为自己的输入。那么分两种情况,如果我们要处理的内容在文件里,可以使用cat把内容读到stdin,否则如果是在shell脚本的变量里或者是终端里的字符串,可以使用echo命令。

一般的命令比如cat,是既可以接受一个管道的输入,也可以通过参数指定文件名来以一个文件作为输入,但有些命令却是只可以以stdin为输入,比如这里的tr。

#!/bin/bash

a="abcde"

b=$(echo $a | tr 'a-z' 'A-Z')

echo $b

b=$(cat 't.txt' | tr 'a-z' 'A-Z')

echo $b

这是该命令的输入。该命令的用处在于比如前一个命令输出了很多内容,想把这些内容转为一个数组,就可以使用tr把标记字符转为空格,然后赋值给一个数组。

其他用法:

删除字符:

使用-c参数,可以吧set1里的字符删除。


压缩字符:

使用-s参数,把多个连续的相同字符压缩成一个


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值