我很困惑关于方式-s
,-t
以及-c
选择在工作TR命令。当我做
echo I am a good boy | tr good bad
我得到的输出:
I am a bddd bdy
这是可以理解的,因为o
在中重复了good
。代替的最后可能的变化o
是d
,因此是输出。
现在当我做
echo I am a good boy | tr -s good bad
输出是
I am a bd bdy
该-s
选项应该将组1中每个字符的每次重复出现都压缩为单个出现,然后将组1中的每个字符更改为组2中位于相同位置的相应字符。
所以应该是
I am a bad bay.
为什么要改变?
而且,当我做
echo I am a good boy | tr -c good bad
我懂了 dddddddgoodddodd
参考此示例,该-c
选项如何工作tr
?
最后:如何将自己从一个好男孩变成一个坏男孩.... :):P
echo I am a good boy | tr <something>
给我的输出为:I am a bad boy
。
-s
开关会导致tr
从最后一个参数到tr
输入中重复的(不是您所说的第一个)挤压任何字符。在您链接的文章中对此进行了说明,并且在手册页的“描述”部分的最后一段中对此进行了说明。