Я не могу понять параметр complement (-c) в команде tr используемой вместе с режимом замены (то есть без каких-либо других параметров), например, для:
эхо "а" | tr-cab
Почему это производит:
ab root @ Slack
(строка ab без перевода строки)?
Команда tr обрабатывает все символы, включая непечатные.
echo в вашем примере производит вывод, состоящий из двух символов:
a \n)В вашем вызове вы приказали tr заменить все символы, которые дополняют a (простыми словами: кроме a) на b , поэтому:
a .Попробуйте протестировать его с помощью printf (который не добавляет в конец новую строку, как это делает echo )
Это приводит к тому же вводу для tr что и к echo , поэтому вывод также тот же:
printf "a\n" | tr -c a b
ab[~]#
Сравнить с:
printf "a" | tr -c a b
a[~]#
А также:
printf "a\n\n" | tr -c a b
abb[~]#