В вашем конкретном случае
Вы можете использовать следующее правило
sed 's/.//2' sample
, где 2
соответствует второму символу.
В качестве примера для фиктивного входного файла с именемtest.txt
qwertyuiop
asdfghjkl
zxcvbnm
вывод команды sed 's/.//2' test.txt
равен
qertyuiop
adfghjkl
zcvbnm
Как правило
Вы можете удалить символ Nth
шаблона .
(, т. е. все символы ), используя
sed 's/.//N' sample
Вы можете адаптировать принимающую программу для создания fifo (именованного канала )с хорошо -известным именем пути при запуске и для удаления этого fifo при выходе. Как правило, получатель также открывает тот же fifo для записи, что держит его открытым :каналы без записи, как правило, уведомляют EOF для читателей.
Периодически он может опрашивать FIFO на наличие данных, не застревая в ожидании, когда их нет. Я не занимаюсь C++, но в C вы просто отмечаете fifo O _NONBLOCK --C++ будет иметь аналогичный механизм.
Затем любой другой процесс может проверить, существует ли FIFO (, чтобы он знал, что есть активный считыватель ), и отправить ему некоторый текст, понятный получателю.
Если вы предпочитаете многопоточность блокировке, вы можете создать отдельный поток для чтения блокирующего fifo и выполнять синхронизацию в рамках механизма потоков.
Одна из проблем с сигналами заключается в том, что вам необходимо идентифицировать pid получателя. Использование fifo обеспечивает стабильный метод именования.
Изменить :Прототип проектного решения, которое позволяет любому количеству клиентов отправлять сообщения на сервер через именованный канал с надежными условиями запуска и закрытия. Минус в том, что в Bash :клиент 40 строк, сервер 65 строк.