Я новичок в сценарии оболочки, и я пытаюсь удалить новый символ линии из каждой строки, используя SED. это то, что я сделал до сих пор:удаление нового символа линии из входящего потока с помощью sed
printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g'
удаляет только Ist новый линия знак. я где-то нашел эту команду:
printf "{new\nto\nlinux}" | sed ':a;N;$!ba;s/\n/ /g'
но это дает: «ба: Событие не найдено.»
если я делаю:
printf "{new\nto\nlinux}" | sed ':a;N;s/\n/ /g' | sed ':a;N;s/\n/ /g'
то это дает правильный вывод, но я ищу что-то лучше, как я не знаю, сколько нового персонажа я буду получать, когда я запустить скрипт. входящий поток от echo или printf или некоторой переменной в скрипте. Заранее спасибо
В 'ба: Событие не найдено' ошибка из вашей оболочки. Прекратите использование csh или выйдите из!. –
@WilliamPursell Мне нужно использовать csh только никаких других вариантов для me.on вашего предложения я упал! «printf» {new \ nto \ nlinux} "| sed ': a; N; $ ba; s/\ n// g'" эта команда тоже не дает правильный результат. Я знаю, что есть много недостатков использования csh, но нужно использовать его из-за некоторого принуждения :(..thanks –
Вы не можете удалить '!', но вам нужно перед ним обратная косая черта. –