Estoy confundido con respecto a la forma -s
, -t
y -c
opciones de trabajo en el tr comando. Cuando lo hago
echo I am a good boy | tr good bad
Me sale la salida:
I am a bddd bdy
Esto es bastante comprensible, ya que o
se repite en good
. El último cambio posible en lugar de o
es d
, y por lo tanto, la salida.
Ahora cuando lo hago
echo I am a good boy | tr -s good bad
la salida es
I am a bd bdy
Se -s
supone que la opción exprime cada ocurrencia repetida de cada carácter en el conjunto 1 en una sola ocurrencia y luego cambia cada carácter en el conjunto 1 en el carácter correspondiente en el conjunto 2 que está en la misma posición.
Entonces debería haber sido
I am a bad bay.
¿Por qué el cambio?
Además, cuando lo hago
echo I am a good boy | tr -c good bad
yo obtengo dddddddgoodddodd
¿Cómo funciona la -c
opción tr
, refiriéndose a este ejemplo?
Y finalmente: cómo cambiarme de un buen chico a un chico malo .... :): P Eso es,
echo I am a good boy | tr <something>
me da la salida como: I am a bad boy
.
-s
cambio hacetr
que exprima cualquier carácter del último argumento atr
(no el primero, como usted dice) que se repite en la entrada. Esto se observa en el artículo que vinculó y se explica en el último párrafo en la sección "Descripción" de la página del manual .