Linux命令TR
tr介绍
tr - translate characters
是对sed功能的简略版,能够删除和替换字符的一个简易命令
tr [option] string1 [string2]
- -c -C –complement 填充除了你想要字符之外的character
- -d –delete 删除
- -s –squeeze-repeats 替换
代码实现
1 -c参数
echo file|tr -c 'fil' ' '
fil %
他会将出fil之外的字符自动补充成空字符串.
接下来看代码是不是支持正则表达式
echo file|tr -c '[a-i]*' ' '
fi e %
2 -d
echo file|tr -d 'fil'
e %
换上正则试一试
echo file|tr -d '[a-i]*'
l %
3 -s
echo file|tr -s 'fil' 'tes'
tese %
换上正则试一试
echo file|tr -s '[a-i]*' 'tes'
sls %
多个参数的使用
大体上的使用就是上面的一些简单操作,接下来试试看多个参数进行测试。我自己尝试了一下能不能对多个文件进行tr,后来好像不太行,翻墙看了下文档和man一下,上面说的是string,那么我认为应该是不能
tr [option] file1
这样的结构的。
tr [-Ccsu] string1 string2
tr [-Ccu] -d string1
tr [-Ccu] -s string1
tr [-Ccu] -ds string1 string2
上面是多个参数的语法
echo abcdefg > a
tr -cd 'a'< a
a
换一个正则看看
echo abcdABCD > b
tr -cd '[a-cA-B]*' < b
abcAB%
根据结果,应该是显示对哪些参数进行了处理。并且对大小写敏感,如果你想要处理一堆大小写混合的数据的话,最好先转换成相同格式的在处理,tr有自带的class对象,man下有很好的说明。我这就举一个大小写转换的例子。
tr '[:lower:]' '[:upper:]' < b
ABCDABCD
这边就一些入门的例子,记录以便以后忘记,如果对其他class有兴趣的话可以自己去看看。
[2]: man tr