0%

tr -s理解

-s Squeeze multiple occurrences of the characters listed in the last operand (either string1 or string2) in the input into a single instance of the character. This occurs after all deletion and translation is completed.

我自己的理解:“针对参数中的最后一个字符集(只有一个字符集参数时就是string1,有两个字符集参数时就是string2)的每个字母,如果出现多个连续的就只保留一个。这个操作在转换和删除操作完成之后进行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ echo 'baaabccc'|tr -d 'ac'
只删除,输出 bb
$ echo 'baaabccc'|tr -s 'ac'
只压缩,输出 babc
$ echo 'baaabccc'|tr 'ac' 'gf'
只转换,输出 bgggbfff
$ echo 'baaabccc'|tr -s 'ac' 'gf'
转换后压缩,输出 bgbf
$ echo 'baaabccc'|tr 'ac' 'g'
只转换,输出 bgggbggg
$ echo 'baaabccc'|tr -s 'ac' 'g'
转换后压缩,输出 bgbg
$ echo 'baarcteejjgfa'|tr -sd 'acj' 'ef'
第一步acj会被删掉,第二步ef被压缩。最后输出 brtegf