Москитная очистка сохранила тему моджибаке

Я опубликовал тему моджибаке из-за моей аварийной программы, часть ��� - это некоторые случайные байтовые коды, например

test/���������������/yoyoyo qqq

И если я хочу его очистить, я печатаю что-то вроде

mosquitto_pub -t test/���������������/yoyoyo -r -n

Но это не сработало, потому что этот символ � не является оригинальным �, этот кодек несовместим в ascii и unicode, поэтому присутствует как символ �.

Как я могу очистить это сообщение сохранения, не удаляя весь файл сохранения?

Спасибо!


person Asoul    schedule 13.10.2016    source источник


Ответы (1)


Если вы не можете понять, какой на самом деле символ, вы можете захватить их и воспроизвести в mosquitto_pub примерно так:

mosquitto_sub -v -C 1 -N -t 'test/+/yoyoyo' > file.txt

Это сохранит в файл тему и полезную нагрузку первого сообщения, которое соответствует шаблону. Между темой и пайлаодом будет пробел.

Затем вы можете отредактировать файл, чтобы удалить полезную нагрузку и оставить только тему (в отдельной строке без новой строки в конце) и сохранить это как edited_file.txt

Затем вы можете передать это обратно в mosquitto_pub, добавить флаг -n (пустое сообщение) и флаг -r (сохранить сообщение)

mosquitto_pub -t `cat edited_file.txt` -r -n
person hardillb    schedule 13.10.2016
comment
Спасибо @hardillb! Я удалил эту тему! но в комментарии к публикации должен быть добавлен флаг -r, я отредактировал для вас :) - person Asoul; 13.10.2016