usuwanie nowego znaku linii z przychodzącego strumienia za pomocą sed

Jestem nowym użytkownikiem skryptów powłoki i próbuję usunąć znak nowej linii z każdej linii za pomocą SED. to właśnie zrobiłem do tej pory:

printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g'

usuwa tylko pierwszy znak nowej linii. Gdzieś znalazłem to polecenie:

printf "{new\nto\nlinux}" | sed ':a;N;$!ba;s/\n/ /g'

ale daje: „ba: nie znaleziono zdarzenia”.

Jeśli zrobię:

printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g' | sed ':a;N;s/\n/ /g'

to daje poprawne wyjście, ale szukam czegoś lepszego, ponieważ nie jestem pewien, ile nowych postaci otrzymam po uruchomieniu skryptu. przychodzący strumień pochodzi z echo lub printf lub jakiejś zmiennej w skrypcie. Z góry dziękuję

questionAnswers(2)

yourAnswerToTheQuestion