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ę