Рейтинг:0

Добавление строки или символа в вывод терминала

флаг cn

Мне нужно запустить команду в терминале, чтобы постоянно получать входящие сообщения из других мест в сети. Я не контролирую формулировку длины сообщения. Однако команда может получать и печатать по одному полному сообщению за раз (и я также не могу контролировать эту команду).

Моя задача — перенаправить этот поток сообщений на локальный порт. Приложение, прослушивающее этот порт, будет дополнительно обрабатывать сообщения. Вот проблема: я должен установить приемный буфер в приложении (скажем, 1024 байта) и, поскольку протокол TCP следует (как активно обсуждалось здесь), сообщения просто проходят не в своем первоначальном виде кусок. И длина сообщения может быть непостоянной (как в моем примере ниже)

Я хочу добавить один специальный символ в начале и в конце сообщения, которое выдает команда, чтобы обработать их на другой стороне. Вот более конкретно, например:

На терминале я запускаю эту команду;

моя команда | тройник | локальный хост netcat 2003    

Эта команда получает сообщения в их исходных фрагментах и ​​пересылает на порт 2003:

action_1_timestamp_2021_6_09_10_34_23_abort
action_2_timestamp_2021_6_09_10_34_34_success
...
action_193848_timestamp_2021_6_23_10_34_23_hold

Как я могу обернуть каждую строку выше следующим образом:

<action_1_timestamp_2021_6_09_10_34_23_abort>

до того, как он будет направлен локальный хост netcat 2003. Я не очень хорошо знаком со сценариями bash.

флаг hr
Ну, вы можете передать это через что-то вроде `sed 's/.*//'` или `sed -e 's/^/' -e 's/$/>/'` - но я подозреваю, что это проблема XY ?
Tristan Tran avatar
флаг cn
@steeldriver Спасибо за код bash. Попробую решить это другим способом. Мы можем закрыть эту тему.
флаг hr
Вы можете сами удалить вопрос, если считаете, что он больше не нужен/актуален.
Tristan Tran avatar
флаг cn
Я все еще хочу сохранить ссылку на ваш код. Так что оставлю вопрос здесь.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.