工作的需要,用到了tr命令,因为用到的次数不是很多,怕以后忘记了百度,就自己总结下。例子什么的,copy linux shell 脚本攻略这本书。
tr:常用选项
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
- tr [options] set1 set2 将来自stdin的输入字符从set1映射到set2,然后将输出写入stdout(标准输出)
echo "HELLO WHO IS THIS" | tr 'A-Z' 'a-z'
结果:hello who is this tr进行数字加密和解密
tr '\t' ' ' < file.txt 将制表符转换成空格
- 用tr删除字符
cat fie.txt | tr -d '[set 1]'字符集补集: tr -c [set1] [set2]
echo hello 1 char 2 next 4 | tr -d -c '0-9 \n'
结果: 1 2 4摈除多余的换行符: cat aaa | tr -s '\n'
结果:1111 2
222
3333 4444
数字相加:cat aaa
1
2
3
4cat aaa | echo $[ $(tr '\n' '+' ) 0 ]
结果:11在上面的命令中,tr用来将'\n'替换成'+',因此我们得到了字符串"1+2+3+...5+",但是
在字符串的尾部多了一个操作符+。为了抵消这个多出来的操作符,我们再追加一个0。
- 字符类
tr可以像使用集合一样使用各种不同的字符类
tr [:class:] [:class:]
tr '[:lower:]' '[:upper:]'
-c或——complerment:取代所有不属于第一字符集的字符; -d或——delete:删除所有属于第一字符集的字符; -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示; -t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。