【Linux常见命令】tr命令

tr - translate or delete characters

tr 命令用于转换或删除文件中的字符。

tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

语法:

  tr [OPTION]... SET1 [SET2]

  tr [-cdst][--help][--version][第一字符集][第二字符集]

参数:

  • -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
  • -d, --delete:删除指令字符
    • # 删除user几个字符
      [root@oldboy oldboy]# cat new.txt|tr -d 'user'
      1-01
      2-02
      3-03
      4-04
      5-05
      
      # 删除字母
      [root@oldboy oldboy]# cat new.txt|tr -d [:alpha:]
      1-01
      2-02
      3-03
      4-04
      5-05
      
      # 删除-
      [root@oldboy oldboy]# cat new.txt|tr -d -          
      1user01
      2user02
      3user03
      4user04
      5user05
      
      # 删除数字1-9
      [root@oldboy oldboy]# cat new.txt|tr -d [1-9]
      -user0
      -user0
      -user0
      -user0
      -user0
      
      # 删除数字0-9
      [root@oldboy oldboy]# cat new.txt|tr -d [0-9] 
      -user
      -user
      -user
      -user
      -user
      
      # 删除数字和-
      [root@oldboy oldboy]# cat new.txt|tr -d "[0-9]-"
      user
      user
      user
      user
      user
      tr -d删除set1
  • -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
  • -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等

示例:

[root@oldboy oldboy]# cat new.txt
1-user01
2-user02
3-user03
4-user04
5-user05

# 从标准输入读取文件内容,作为字符集
[root@oldboy oldboy]# tr [1-9] [a-z] <new.txt
a-user0a
b-user0b
c-user0c
d-user0d
e-user0e

  [root@oldboy oldboy]# cat new.txt|tr [1-9] [a-z]
  a-user0a
  b-user0b
  c-user0c
  d-user0d
  e-user0e

将1替换为a,将2替换b,将3替换为c,...,一次类推。

大小写转换,也可以通过[:lower][:upper]参数来实现:

[root@oldboy oldboy]# cat new.txt|tr [:lower:] [:upper:]
1-USER01
2-USER02
3-USER03
4-USER04
5-USER05
[root@oldboy 
原文地址:https://www.cnblogs.com/zoe233/p/11808745.html