Я запутался в отношении способа -s, -tи -cопции работают в команде tr . Когда я делаю
echo I am a good boy | tr good bad
Я получаю вывод:
I am a bddd bdy
Это вполне понятно, так oкак повторяется в good. Последнее возможно изменение места oIS 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(а не первого, как вы говорите), которые повторяются во входных данных. Это отмечено в статье, на которую вы ссылаетесь, и объясняется в последнем абзаце в разделе «Описание» справочной страницы .