tr 命令总结

原文地址

tr 用于替换或者删除字符串。

The tr utility copies the standard input to the standard output with substitution
or deletion of selected characters.
语法
tr [-cdst] [第一字符集][第二字符集]  
参数说明
  • -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
  • -d, --delete:删除指令字符
  • -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
  • -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
  • 字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
  • 字符集2:指定要转换成的目标字符集。
字符类
[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符
实例
  1. 将输入字符由小写转换大写
$ echo "first blood" | tr 'a-z' 'A-Z'
FIRST BLOOD

或者使用字符集 [:lower:] [:upper:] 来转换大小写

$ echo "first blood" | tr [:lower:] [:upper:]
FIRST BLOOD
  1. 删除

删除所有的数字:

$ echo "first 123 blood 456" | tr -d "0-9"
first  blood 

使用字符集 [:digit:] 删除所有的数字

$ echo "first 123 blood 456" | tr -d [:digit:]
first  blood 
  1. 补集

把除数字,空格,换行符之外的所有字符串,都替换成 &

$ echo "first 123 blood 456" | tr -c '0-9 \n' '&'
&&&&& 123 &&&&& 456

删除除数字,空格,换行符之外的所有字符串:

echo "first 123 blood 456" | tr -dc '0-9 \n'
 123  456

  1. 压缩

压缩重复的字符串 s 和 数字 2

$ echo "he'sssss age issssss 12222222222." | tr -s 's2'
he's age is 12.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容