qq:78080458 学习交流群:150633458
分类: LINUX
2018-12-03 15:40:17
tr
删除或者更改文件中的字符串,这个指令一般需要两个字符集。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
tr [选项] set1 set2
2、选项列表
选项 |
说明 |
--help |
显示帮助文档 |
--version |
显示版本信息 |
-c | -C | --complement |
使用SET1的补码 |
-d | --delete |
删除字符集1中指定的内容 |
-s | --squeeze-repeats |
将set1中重复出现的内容,替换成单次出现的内容 |
-t | --truncate-set1 |
首先将SET1按照SET2的长度截断 |
集合指定为字符串。大多数人代表自己。解释序列是:
序列 |
说明 |
\NNN |
具有八进制值nnn的字符(1到3位八进制数字) |
\\ |
反斜线符号 |
\a |
可听BEL |
\b |
(键盘的)退格键 |
\f |
换页 |
\n |
换行 |
\r |
返回 |
\t |
水平tab |
\v |
垂直tab |
CHAR1-CHAR2 |
从CHAR 1到CHAR 2的所有字符按升序排列 |
[CHAR*] |
拷贝set2中的字符,长度为set1的长度 |
[CHAR*REPEAT] |
重复拷贝 |
[:alnum:] |
所有字母和数字 |
[:alpha:] |
所有字母 |
[:blank:] |
所有的水平空白 |
[:cntrl:] |
所有的控制字符 |
[:digit:] |
所有的数字 |
[:graph:] |
所有的可打印的字符,不包括空格 |
[:lower:] |
所有的小写字母 |
[:print:] |
所有的可打印字符,包括空格 |
[:punct:] |
所有标点符号 |
[:space:] |
所有的水平和垂直空格 |
[:upper:] |
所有的大写字母 |
[:xdigit:] |
所有的十六进制数字 |
[=CHAR=] |
所有等价于CHAR的字符 |
如果没有给出‘-d’,同时出现SET1和SET2,则会发生翻译。‘-t’只能在翻译时使用。通过在必要时重复SET1的最后一个字符,Set2被扩展到SET1的长度。Set2的多余字符将被忽略。只有[:lower:]和[:upper:]保证按升序展开;在set2翻译时使用,它们只能成对使用以指定大小写转换。‘-s’在不翻译或删除时使用SET1;压缩使用SET2,并在翻译或删除后发生。
3、实例
1)删除内容
[root@localhost weijie]# cat 1.c hello world, i am david. i love linux, love code. [root@localhost weijie]# tr -d hello < 1.c //将1.c的内容输出到tr,然后删除出现的字符 wrd, i am david. i v inux, v cd. //这里并不是删除一个单词hello,而是删除出现的这5个字母 |
2)将文件中的小写字母替换成大写
[root@localhost weijie]# tr -s a-z A-Z < 1.c HELO WORLD, I AM DAVID. I LOVE LINUX, LOVE CODE. |