欢迎您的访问
专注架构,Java,数据结构算法,Python技术分享

Linux tr 命令

1、概述

通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 【这句话是复制的】

转换或者删除字符

2、命令格式

tr [OPTION]… SET1 [SET2]    SET1 字符串1   SET2 字符串2

3、常用命令参数

 

-c, -C, –complement  用字符串1中字符集的补集替换此字符集,要求字符集为ASCII【不清楚

-d, –delete  不转换字符串1,并删除掉

 

[oldboy@moban oldboy]$ tr -d ww  qwewwq qeq ^C

-s, –squeeze-repeats  删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串【】

 

[oldboy@moban oldboy]$ tr -s 12 AB qwrds123 qwrdsAB3   12332r23231233312sdfwe12aa12bb AB33BrB3B3AB333ABsdfweABaaABbb ^C [oldboy@moban oldboy]$ tr -s 11 BA q1122 qA22 11vv11bb11nn11mm AvvAbbAnnAmm ^C [oldboy@moban oldboy]$  [oldboy@moban oldboy]$ tr -s 12 AA 12bb12aa12rr AbbAaaArr ^C [oldboy@moban oldboy]$ 

-t, –truncate-set1  将字符串1的长度设置给字符串2 【即字符串2的长度等于字符串1】

 

[oldboy@moban oldboy]$ tr 123 q 123aa123bb qqqaaqqqbb ^C [oldboy@moban oldboy]$  [oldboy@moban oldboy]$ tr 123 qb 123aaa123bb qbbaaaqbbbb ^C [oldboy@moban oldboy]$ tr 123 qbaa 123aaa123bbb qbaaaaqbabbb ^C [oldboy@moban oldboy]$ 

特殊含义的字符

 [:alnum:]    所有的大小写字母和数字

[:alpha:]    所有大小写字母

[:blank:]    所有水平空白字符

[:cntrl:]    所有的控制字符【不知怎么用】

 [:digit:]    所有数字

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

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

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

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

[:punct:]    所有的标点符号【不是数字和字母

 

[oldboy@moban ~]$ tr [:punct:] q !@#wr,./?;'::'"|[]{} qqqwrqqqqqqqqqqqqqqqq

[:space:]    所有的水平或者竖直空白字符【所有的空白字符】

[:xdigit:]    所有的十六进制数字

  其他:
 1、字符范围

指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。

[a-z] a-z内的字符组成的字符串。

[A-Z] A-Z内的字符组成的字符串。

[0-9] 数字串。

octal 一个三位的八进制数,对应有效的ASCII字符。

[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。

 2、  tr中特定控制字符的不同表达方式

 

速记符含义八进制方式 a Ctrl-G  铃声07 b Ctrl-H  退格符10 f Ctrl-L  走行换页14 n Ctrl-J  新行12 r Ctrl-M  回车15 t Ctrl-I  tab11 v Ctrl-X  30

 

4、常用示例

1、将文件file中出现的”abc”替换为”xyz”
# cat file | tr “abc” “xyz” > new_file
【注意】这里,凡是在file中出现的”a”字母,都替换成”x”字母,”b”字母替换为”y”字母,”c”字母替换为”z”字母。而不是将字符串”abc”替换为字符串”xyz”。

2、使用tr命令“统一”字母大小写
(小写 –> 大写)
# cat file | tr [a-z] [A-Z] > new_file
(大写 –> 小写)
# cat file | tr [A-Z] [a-z] > new_file

3、把文件中的数字0-9替换为a-j
# cat file | tr [0-9] [a-j] > new_file

4、删除文件file中出现的”Snail”字符
# cat file | tr -d “Snail” > new_file
【注意】这里,凡是在file文件中出现的’S’,’n’,’a’,’i’,’l’字符都会被删除!而不是紧紧删除出现的”Snail”字符串。

5、删除文件file中出现的换行’n’、制表’t’字符
# cat file | tr -d “nt” > new_file
不可见字符都得用转义字符来表示的,这个都是统一的。

6、删除“连续着的”重复字母,只保留第一个
# cat file | tr -s [a-zA-Z] > new_file

7、删除空行
# cat file | tr -s “n” > new_file

8、删除Windows文件“造成”的’^M’字符
# cat file | tr -d “r” > new_file
或者
# cat file | tr -s “r” “n” > new_file
【注意】这里-s后面是两个参数”r”和”n”,用后者替换前者

9、用空格符40替换制表符11
# cat file | tr -s “11” “40” > new_file

10、把路径变量中的冒号”:”,替换成换行符”n”
# echo $PATH | tr -s “:” “n”

5、命令所在位置和类型

 

[oldboy@moban ~]$ which tr /usr/bin/tr [oldboy@moban ~]$ type tr tr is hashed (/usr/bin/tr)

 

原文始发于:Linux tr 命令

赞(0) 打赏
版权归原创作者所有,任何形式转载请联系作者;码农code之路 博客站点 » Linux tr 命令

相关推荐

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏