shell编程——基本文本处理(八)之tr命令替换文件内容

用来批量替换文本中的字符

tr的功能是转换或者删除指定的字符

与其他的文本命令不同的是,tr命令不能直接从文件中读取数据,只能从标准输入获取数据,并且将处理结果写到标准输出设备。

tr [option] ... set1 [set2]

-c:用字符集set2替换set1中没有包含的字符

-d:删除字符集set1中的所有字符,不执行替换操作

-s:压缩set1中重复的字符

-t:

参数set1和set2分别表示参与操作的两个字符集,其中set1用于查询,set2用于处理各种转换操作。凡是在set1中出现的字符,都将被替换为字符集set2中相应位置上的字符。

1    去除重复出现的字符

result=`tr -s "[a-z]" < demo.txt`

echo "$result"


上述表达式使用了输入重定向将文本文件的内容输入到tr命令。也可以使用管道完成。

2    删除空行

所谓空行,是指只含有换行符,除此之外不含有任何其他字符

result=`cat demo.txt | tr -s ["\n"]`

echo "$result"

注:换行符也可以用八进制数值\012表示

3    大小写转换

tr [a-z] [A-Z]

注:也可以用'a-z' 'A-Z'表示

4    删除指定字符

使用-d选项

tr -d "[0-9] [:]" < demo.txt   //删除数字和冒号

注:使用tr命令时,字符集表示一个个单独的字符,而非字符串。因此,tr -d [Hello]表示的是文本中出现的5个字符,而非Hello这个字符串。

也可以通过补集的方法删除文本中的字符:

tr -cs "[a-z] [A-Z]" "[\n*]" < demo.txt

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值