Linux tr命令的使用方法
01.命令概述
tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
tr的英文全称是“transform”,即转换的意思。tr他只能从标准输入中读取数据,因此,tr要么将输入文件重定向到标准输入,要么从管道读入数据。
注意:tr类似于sed命令,但是比sed简单,所以tr能实现的功能,sed都能实现。
02.命令格式
用法:tr[选项]...SET1[SET2]
03.常用选项
从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。
-c,-C,--complement 首先补足SET1
-d,--delete 删除匹配SET1的内容,并不作替换
-s,--squeeze-repeats 如果匹配于SET1的字符在输入序列中存在连续的
重复,在替换时会被统一缩为一个字符的长度
-t,--truncate-set1 先将SET1的长度截为和SET2相等
--help 显示此帮助信息并退出
--version 显示版本信息并退出
SET是一组字符串,一般都可按照字面含义理解。解析序列如下:
\NNN 八进制值为NNN的字符(1至3个数位)
\\ 反斜杠
\a 终端鸣响
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
字符1-字符2 从字符1到字符2的升序递增过程中经历的所有字符
[字符*] 在SET2中适用,指定字符会被连续复制直到吻合设置1的长度
[字符*次数] 对字符执行指定次数的复制,若次数以0开头则被视为八进制数
[:alnum:] 所有的字母和数字
[:alpha:] 所有的字母
[:blank:] 所有呈水平排列的空白字符
[:cntrl:] 所有的控制字符
[:digit:] 所有的数字
[:graph:] 所有的可打印字符,不包括空格
[:lower:] 所有的小写字母
[:print:] 所有的可打印字符,包括空格
[:punct:] 所有的标点字符
[:space:] 所有呈水平或垂直排列的空白字符
[:upper:] 所有的大写字母
[:xdigit:] 所有的十六进制数
[=字符=] 所有和指定字符相等的字符
仅在SET1和SET2都给出,同时没有-d选项的时候才会进行替换。
仅在替换时才可能用到-t选项。如果需要SET2将被通过在末尾添加原来的末字符的方式
补充到同SET1等长。SET2中多余的字符将被省略。只有[:lower:]和[:upper:]
以升序展开字符;在用于替换时的SET2中以成对表示大小写转换。-s作用于SET1,既不
替换也不删除,否则在替换或展开后使用SET2缩减。
字符范围
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z]a-z内的字符组成的字符串。
[A-Z]A-Z内的字符组成的字符串。
[0-9]数字串。
\octal一个三位的八进制数,对应有效的ASCII字符。
[O*n]表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\aCtrl-G铃声\007
\bCtrl-H退格符\010
\fCtrl-L走行换页\014
\nCtrl-J新行\012
\rCtrl-M回车\015
\tCtrl-Itab键\011
\vCtrl-X\030
04.参考示例
4.1将输入字符由大写转换为小写
[deng@localhost~]$echo"HELLOITCAST"|tr'A-Z''a-z' helloitcast [deng@localhost~]$
‘A-Z'和‘a-z'都是集合,集合是可以自己制定的,例如:‘ABD-}'、‘bB.,'、‘a-de-h'、‘a-c0-9'都属于集合,集合里可以使用'\n'、'\t',可以可以使用其他ASCII字符。
4.2删除出现的数字
[deng@localhost~]$echo"hello1234itcast7890"|tr-d'0-9' helloitcast [deng@localhost~]$
4.3从输入文本中将不在补集中的所有字符删除
[deng@localhosttest]$echoaabbcc..#dd2*/dk4|tr-d-c'0-9\n' 24 [deng@localhosttest]$
补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。
4.4将连续重复的字符以单独一个字符表示
[deng@localhosttest]$echo"hellooooooooooisheimamaaaaaaaaaa"|tr-s'oa' helloisheimama [deng@localhosttest]$
4.5使用替换操作执行+操作
[deng@localhosttest]$echo123456789|xargs-n1|echo$[$(tr'\n''+')0] 45 [deng@localhosttest]$
4.6删除由于Windows文件造成的'^M'字符
[deng@localhosttest]$cattxt|tr-s'\r''\n'>file [deng@localhosttest]$
或者
[deng@localhosttest]$cattxt|tr-d'\r'>file
4.7将小写字母转换为大写字母
[deng@localhosttest]$echo"helloitcast"|tr'[:lower:]''[:upper:]' HELLOITCAST [deng@localhosttest]$
4.8将换行符替换成制表符
[deng@localhosttest]$cattxt|tr'\n''\t' 11111111222222225555[deng@localhosttest]$ [deng@localhosttest]$
到此这篇关于Linuxtr命令的使用方法的文章就介绍到这了,更多相关Linuxtr命令内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。