Linux 字符的替换与删除 tr
使用较少。
tr命令用于文件内容中字符的替换与删除。
tr只能替换字符,不能替换字符串,而且通常是处理英文字符。
常用应用场景:英文大小写转化、换行与空格的处理,等。
1 语法
字符串中字符的替换,这里用于测试它的用法
echo 字符串 | tr [选项] 字符集1 字符集2
将指定字符串的字符集1的各字符依次替换为字符串2中的各字符。
字符集通常用[ ]括起来,其中包含多个字符;
字符集1中的各元素依次被字符集2中的各元素替换;
两个字符集中的元素的个数相同。
文件内容字符的替换与删除
tr [选项] 字符集1 字符集2 < 文件
tr命令将指定文件中的字符集1的各字符依次替换为字符串2中的各字符。
文件中的具体处理与echo中一致。
2 常用选项
选项 | 作用 |
---|---|
-d | 删除字符集1中的各个字符 |
-s | 删除连续重复的字符,只保留第一个。 |
3 示例
例1:将xiaobuteach中的x替换为X
echo xiaobuteach | tr [x] [X]
例2:将xiaobuteach中的x替换为X,a替换为A
echo xiaobuteach | tr [xa] [XA]
例3:将xiaobuteach中的所有小写英文字母替换大小字母
echo xiaobuteach | tr [a-z] [A-Z]
例4:大小写互换
echo XiaoButeach | tr [a-zA-Z] [A-Za-z]
例5:删除其中的a字符
echo xiaobuteach | tr -d a
例6:删除其中的ab字符
echo xiaobuteach | tr -d [ab]
例7:删除其中的连续空格
echo "hello xiaobuteach" | tr -s "[ ]"
例8:删除其中的连续空换
echo -e "1\n\n\n2\n\n3\n4\n" | tr -s "\n"
4 tr进行文件中的字符的替换与删除
语法
tr [选项] 字符集1 字符集2 < 文件
从文件中读取内容,替换内容显示在控制台,可结合操作符>输出到新文件中。
准备数据文件
rm -rf /test1.txt
for i in {1..5};do echo -e "xiaobuteach$i\n\n" >> /test1.txt; done
查看文件数据如下:
例1:去除其中的连续换行,保留一个
tr -s "\n" < /test1.txt
运行结果
例2:去除其中的连续换行,保留一个,保存到文件/test2.txt中。
tr -s "\n" < /test1.txt > /test2.txt