Это потому, что команда print
команды awk
по умолчанию вставляет новую строку. Вы можете распечатать все сразу, чтобы использовался только один print
вызов:
$ date +'%b' | awk '{print "Left " $1 " Right"}'
Left Jun Right
Или используйте printf
вместо:
$ date +'%b' | awk '{printf "Left "; printf "%s", $1; printf " Right\n"}'
Left Jun Right
Использование printf
здесь бессмысленно, я просто включил его в качестве примера и чтобы показать, что он не добавляет \n
по умолчанию.
Направьте вывод вашей команды nc
в какую-нибудь программу, которая будет отображать значения отдельных байтов вывода, вместо того, чтобы просто отправлять эти байты на терминал, который будет обрабатывать байты как печатные символы. Например:
nc -k -l 3111 | od -tx1
или:
nc -k -l 3111 | hexdump -C