Я отлаживаю вывод программы, которая передает данные по TCP.
В целях отладки я заменил принимающую программу на netcat
и hexdump
:
netcat -l -p 1234 | hexdump -C
Это выводит все данные в виде хорошего hexdump, почти как я хочу. Теперь данные передаются в фиксированных блоках, длина которых не кратна 16, что приводит к смещенным линиям на выходе, что затрудняет определение различий:
00000000 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|
00000010 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |.P..............|
00000020 00 00 50 00 00 00 00 00 00 00 00 00 00 00 00 00 |..P.............|
Как переформатировать вывод, чтобы после 17 байтов начиналась новая строка?
Это должно выглядеть примерно так:
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|
00 |. |
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|
00 |. |
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |P...............|
00 |. |
Использование hexdumps -n
параметр не работает, так как он выйдет после достижения количества байтов. (Если нет способа сохранить работающую программу netcat и беспрепятственно передавать следующие байты новому экземпляру hexdump).
Также было бы здорово, если бы я мог использовать watch -d
на выходе, чтобы получить подсветку изменений между строками.