tr - 转换或删除字符串

tr - translate or delete characters(转换或删除字符串)

tr命令从标准输入删除或替换字符,并将结果写到标准输出。根据由string1和string2变量指定的字符串以及指定的标志,tr命令可执行三种操作。

格式:
tr [OPTION]... String1 [String2]

OPTION:

  • -d :从标准输入中删除String1中包含的每一个字符
  • -s :缩减连续重复的字符成指定的单个字符
  • -c :反选设定字符。也就是符合String1的部分不做处理,不符合的剩余部分才进行转换

字符集合的范围:
各种转义字符如:\n,\r等和正则中常用的[:alnum:],[:digit:]等

示例:
1.小写转换成大写:

$ echo 'walter' | tr 'a-z' 'A-Z'
WALTER
$ echo 'walter' | tr '[:lower:]' '[:upper:]'
WALTER

2.删除指定字符:

$ echo 'walter' | tr -d 'er'
walt

3.指定不删除的字符:

$ echo 'walter' | tr -d -c 'walt \n'   #这里不删除\n,结果walt就会和下一个$连在一起
walt

4.压缩重复字符:

$ echo 'walterr  iss comming' | tr -s 'rism'
walter  is coming
$ echo 'walterr  iss comming' | tr -s 'rism '   #可以看到tr只能删除连续的重复字符,与uniq类似
walter is coming

5.做数字相加:

$ echo $[`echo 1 2 3 4 5 6 7 8 9 | tr ' ' '+'`]
45

总结:
tr命令感觉像是sed命令的精简版。使用较少。

posted @ 2019-02-21 10:36  dance_man  阅读(486)  评论(0)    收藏  举报