Je suis confus quant à la façon -s
, -t
et -c
options de travail dans la tr commande. Quand je fais
echo I am a good boy | tr good bad
J'obtiens la sortie:
I am a bddd bdy
Ceci est tout à fait compréhensible, car o
est répété dans good
. Le dernier changement possible à la place de o
est d
, et donc de la sortie.
Maintenant, quand je fais
echo I am a good boy | tr -s good bad
la sortie est
I am a bd bdy
L' -s
option est censée compresser chaque occurrence répétée de chaque caractère de l'ensemble 1 en une seule occurrence, puis changer chaque caractère de l'ensemble 1 en le caractère correspondant de l'ensemble 2 qui se trouve à la même position.
Il aurait donc dû être
I am a bad bay.
Pourquoi le changement?
De plus, quand je fais
echo I am a good boy | tr -c good bad
Je reçois dddddddgoodddodd
Comment fonctionne l' -c
option tr
, en se référant à cet exemple?
Et enfin: comment me transformer d'un bon garçon en un mauvais garçon .... :): P Autrement dit,
echo I am a good boy | tr <something>
me donne la sortie comme: I am a bad boy
.
-s
commutateur provoque latr
compression de tous les caractères du dernier argument verstr
(pas le premier, comme vous le dites) qui sont répétés dans l'entrée. Ceci est noté dans l'article que vous avez lié et est expliqué dans le dernier paragraphe de la section "Description" de la page de manuel .