0%

tr命令

一、常用用法

有3种常用的模式,因而有3种常用用法,分别介绍如下。

1.1、删除

1
其他命令的输出 | tr [--complement] -d SET

1.2、去重

1
其他命令的输出 | tr [--complement] -s SET

1.3、替换

1
其他命令的输出 | tr SET1 SET2

二、含义与选项

2.1、含义

相应于3种常用用法,含义分别介绍如下。

2.1.1、删除

对于标准输入内容,如果未指定“–complement”选项,表示删除其中属于“SET”的字符,进行打印;如果指定“–complement”选项,表示删除其中属于“SET补集”的字符,进行打印。

2.1.2、去重

对于标准输入内容,如果未指定“–complement”选项,当其中存在一个子串,子串的长度大于1,子串只由1个字符构成,且该字符属于“SET”,那么进行去重,即以构成该子串的字符代替该子串;如果指定“–complement”选项,将“字符属于‘SET’”的条件改为“字符属于‘SET补集’”。

2.1.3、替换

对于标准输入内容,其中的任意一个字符,只要该字符属于“SET1”,那么就以“SET2”中相应位置的字符进行替换。

2.2、选项表示的意思

“–complement”:表示使用显式所指定集合的补集。
“-d”:表示“删除”模式。
“-s”:表示“去重”模式。

三、“SET”集合表示方法

对于“SET”集合的表示最常用的有两种方法,分别是:枚举法和范围法。

3.1、枚举法

枚举出构成“SET”集合的所有元素,比如“abcde”。

3.2、范围法

指定“SET”集合的“首端元素”和“尾端元素”,以“-”相连接,比如“[a-z]”。注意我们是在“递增”的语境中,确定“首端元素”和“尾端元素”的,比如对于“abc…xyz”这26个小写英文字母,在“递增”的语境中,“首端元素”是“a”,“尾端元素”是“z”。

备注:
允许以转义形式表达某些特殊字符,比如“\n”,“\t”和“\r”等。

四、一些例子

4.1、删除

1、例子1
执行命令:

1
echo "hello world" | tr -d "abcde"

所得结果如图1所示:

图1

2、例子2
执行命令:

1
echo "hello world" | tr --complement -d "abcde\n"

所得结果如图2所示:

图2

4.2、去重

1、例子1
执行命令:

1
echo "hellllo" | tr -s "l"

所得结果如图3所示:

图3

2、例子2
执行命令:

1
echo "hellllo" | tr --complement -s "abcde"

所得结果如图4所示:

图4

4.3、替换

1、例子1
执行命令:

1
echo "hello world" | tr "[a-z]" "[A-Z]"

所得结果如图5所示:

图5

您的支持将鼓励我继续分享!