Я неправильно понимаю ваш вопрос?
Прослушиватель netcat по умолчанию должен завершиться после получения ввода (в этом случае ваше эхо направляет его в netcat, который пересылает его слушателю).
Если вы хотите, чтобы прослушивающая служба Netcat продолжала слушать после получения входных данных:
nc -lk 12345
Но самое главное, пожалуйста, проверьте справочные страницы для netcat .. они удивительно полезны для всех команд ...
man nc
Во-первых, sed
не поддерживает нежадный квантификатор *?
.
Во-вторых, вы должны изменить разделитель оператора подстановки:
sed 's~<oTimer[^>]*/>~~g'
Если <oTimer.*?/>
является вашим регулярным выражением, обратите внимание, что <oTimer/>something else <anothertag?>
также будет соответствовать. Это желательно? Может быть, вы ищете парсер html вместо этого?
Вы уверены в вопросительном знаке? В основных регулярных выражениях он не имеет специального значения, поэтому шаблон должен заканчиваться (необычным)?/>
Вам нужна одна обратная косая черта, чтобы избежать косой черты, но в этом случае легче читать, используя другой разделитель для вашей команды s
(вы можете выбрать любой!):s_regex_replacement with /_
Если вы хотите заменить на пустую строку, вам все равно нужен третий разделитель (, второй и третий окружают строку замены, поэтому для пустой замены у вас есть два разделителя, между которыми ничего нет ).
В общем, я подозреваю, что вы ищете что-то вродеsed 's_<oTimer[^>]*/>__g'
Не используйте sed
для этого, так как он не понимает не -жадное сопоставление.Вы можете использовать perl
вместо:
perl -pe 's|<oTimer.*?/>||g' file.in > file.out
Или, чтобы отредактировать файл на месте:
perl -i.bak -pe 's|<oTimer.*?/>||g' file.in