Comment fonctionnent les options '-s', '-t' et '-c' de la commande tr sous Unix ?

Je suis confus quant au chemin à suivre -s, -t, et les options -c fonctionnent dans la commande tr. Quand je fais

echo I am a good boy | tr good bad

J'obtiens la sortie:

I am a bddd bdy

C'est tout à fait compréhensible, puisque o est répété dans good. Le dernier changement possible à la place de o est d, et donc la sortie.

Maintenant quand je le fais

echo I am a good boy | tr -s good bad

La sortie est

I am a bd bdy

L'option -s est censée presser chaque occurrence répétée de chaque caractère de l'ensemble 1 en une seule occurrence, puis changez chaque caractère de l'ensemble 1 en caractère correspondant de l'ensemble 2 qui est dans la même position.

Donc ça aurait dû être

I am a bad bay.

Pourquoi ce changement?

De plus, quand je fais

echo I am a good boy | tr -c good bad

Je reçois dddddddgoodddodd

Comment fonctionne l'option -c pour tr, en se référant à cet exemple?

Et enfin: comment me changer d'un bon garçon à un mauvais garçon.... :) :P C'est-à-dire

echo I am a good boy | tr <something> me donne la sortie comme: I am a bad boy.

demandé sur