Nie mam jasności co do sposobu -s
, -t
oraz -c
możliwości pracy w tr polecenia. Kiedy robię
echo I am a good boy | tr good bad
Otrzymuję wynik:
I am a bddd bdy
Jest to całkiem zrozumiałe, ponieważ o
powtarza się w good
. Ostatnią możliwą zmianą w miejsce o
jest d
, a stąd wynik.
Teraz kiedy to zrobię
echo I am a good boy | tr -s good bad
wyjście jest
I am a bd bdy
-s
Opcja ma wycisnąć powtarzającego wystąpienie każdego znaku w zestawie 1 do jednego wystąpienia i następnie zmienić każdy znak w zestawie 1 do odpowiedniego znaku w zestawie 2, który jest w tej samej pozycji.
Tak powinno być
I am a bad bay.
Skąd ta zmiana?
Co więcej, kiedy to zrobię
echo I am a good boy | tr -c good bad
dostaję dddddddgoodddodd
Jak działa -c
opcja w tr
odniesieniu do tego przykładu?
I wreszcie: jak zmienić się z dobrego chłopca w złego chłopca .... :): P To znaczy,
echo I am a good boy | tr <something>
Daje mi wyjście jak: I am a bad boy
.
-s
przełącznik powodujetr
wyciskanie dowolnych znaków z ostatniego argumentu natr
(nie pierwszy, jak mówisz), które są powtarzane na wejściu. Jest to zauważono w artykule ty związane i wyjaśnione w ostatnim akapicie, w sekcji „Opis” na stronie man .