良许Linux教程网 干货合集 Linux系统tr命令详解

Linux系统tr命令详解

Linux系统中tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,下面良许教程网为大家分享一下Linux系统tr命令的具体使用方法。

Linux系统tr命令详解

语法

 tr [-cdst][--help][--version][第一字符集][第二字符集]  
 tr [OPTION]…SET1[SET2]

参数说明:

  • -c, –complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换

  • -d, –delete:删除指令字符

  • -s, –squeeze-repeats:缩减连续重复的字符成指定的单个字符

  • -t, –truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等

  • –help:显示程序用法信息

  • –version:显示程序本身的版本信息

字符集合的范围:

  • \NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)

  • \ 反斜杠

  • \a Ctrl-G 铃声

  • \b Ctrl-H 退格符

  • \f Ctrl-L 走行换页

  • \n Ctrl-J 新行

  • \r Ctrl-M 回车

  • \t Ctrl-I tab键

  • \v Ctrl-X 水平制表符

  • CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。

  • [CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止

  • [CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)

  • [:alnum:] :所有字母字符与数字

  • [:alpha:] :所有字母字符

  • [:blank:] :所有水平空格

  • [:cntrl:] :所有控制字符

  • [:digit:] :所有数字

  • [:graph:] :所有可打印的字符(不包含空格符)

  • [:lower:] :所有小写字母

  • [:print:] :所有可打印的字符(包含空格符)

  • [:punct:] :所有标点字符

  • [:space:] :所有水平与垂直空格符

  • [:upper:] :所有大写字母

  • [:xdigit:] :所有 16 进位制的数字

  • [=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

案例演示:

将输入字符由大写转换为小写:

 echo "HELLO WORLD" | tr 'A-Z' 'a-z'
 hello world

‘A-Z’ 和 ‘a-z’都是集合,集合是可以自己制定的,例如:’ABD-}’、’bB.,’、’a-de-h’、’a-c0-9’都属于集合,集合里可以使用’\n’、’\t’,可以可以使用其他ASCII字符。

使用tr删除字符:

 echo "hello 123 world 456" | tr -d '0-9'
 hello  world

将制表符转换为空格:

 cat text | tr '\t' ' '

字符集补集,从输入文本中将不在补集中的所有字符删除:

 echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
  1  2  3  4

此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。

用tr压缩字符,可以压缩输入中重复的字符:

 echo "thissss is      a text linnnnnnne." | tr -s ' sn'
 this is a text line.

巧妙使用tr做数字相加操作:

 echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]

删除Windows文件“造成”的’^M’字符:

 cat file | tr -s "\r" "\n" > new_file
 或
 cat file | tr -d "\r" > new_file

tr可以使用的字符类:

 [:alnum:]:字母和数字
 [:alpha:]:字母
 [:cntrl:]:控制(非打印)字符
 [:digit:]:数字
 [:graph:]:图形字符
 [:lower:]:小写字母
 [:print:]:可打印字符
 [:punct:]:标点符号
 [:space:]:空白字符
 [:upper:]:大写字母
 [:xdigit:]:十六进制字符

使用方式:

 tr '[:lower:]' '[:upper:]'

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部