Это не имеет ничего общего с sed как таковым, оно применимо к любой программе, которая читает стандартный ввод. В любом случае, вы искали
sed 's/:/ /g' <<<"$PATH"
Нет причин для сохранения в другой переменной, ничто из этого не повлияет на значение, хранящееся в переменной. Для этого вам нужен оператор присваивания (=). Синтаксис, используемый выше, называется «здесь строка» и специфичен для bash, ksh и zsh. Он служит для передачи значения переменной в качестве входа в программу, которая читает со стандартного ввода.
Я написал «здесь строка» , в которой перечислены все различные операторы оболочки, подобные этому. Вы можете захотеть посмотреть.
Обратите внимание, что вы также могли бы сделать
echo "$PATH" | sed 's/:/ /g'
Наконец, вам действительно не нужно sed для этого. Вы можете сделать все в bash прямо:
echo "${PATH//:/ }"
Вышеупомянутая конструкция замены bash. Учитывая переменную $var, шаблон pat и замену (rep), чтобы заменить все вхождения pat на rep, вы сделали бы
echo "${var//pat/rep}"
То же самое с одной косой чертой заменяет только первое вхождение:
echo "${var/pat/rep}"