awk погасить вывод последней запятой

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dimidrol80
рядовой
Сообщения: 38
Зарегистрирован: 2008-06-07 17:50:21
Контактная информация:

awk погасить вывод последней запятой

Непрочитанное сообщение dimidrol80 » 2014-07-28 20:33:43

Доброго времени суток
Нужна ваша помощь в скрипте на awk

Код: Выделить всё

asterisk -rx "sip show peers" | awk 'BEGIN{print"{\n\"data\": ["; } NR>1 {if($2 ~/^[0-9]/)print "\t{ \"{#TRUNKIP}\": \""$2"\" },";} END{print "\t]\n}";}'
данный скрипт выводит список ip c астериска в формате понятному zabbix
но есть одно но последняя запятая лишняя ее выводить не надо
Формат вывода

Код: Выделить всё

{
"data": [
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        { "{#TRUNKIP}": "192.168.xxx.xxx" },
        ]
}

как можно задать для awk не выводить последнюю запятую?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

lazhu
сержант
Сообщения: 241
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Re: awk погасить вывод последней запятой

Непрочитанное сообщение lazhu » 2014-07-29 10:23:17

Код: Выделить всё

asterisk -rx "sip show peers" | awk 'BEGIN{print"{\n\"data\": ["; }\
 $2 ~/^[0-9]/ {if(s!="") {print s","; s="";}; s="\t{ \"{#TRUNKIP}\": \""$2"\""} END {if (s!="") print s"\n\t]\n}"}'

dimidrol80
рядовой
Сообщения: 38
Зарегистрирован: 2008-06-07 17:50:21
Контактная информация:

Re: awk погасить вывод последней запятой

Непрочитанное сообщение dimidrol80 » 2014-07-29 11:29:13

Большое спасибо за помощь!!!
Если вас не затруднить можете подсказать как именно подавляется вывод последней запятой?

lazhu
сержант
Сообщения: 241
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Re: awk погасить вывод последней запятой

Непрочитанное сообщение lazhu » 2014-07-30 11:31:17

Все строки, кроме последней, печатаем с запятой

Код: Выделить всё

print s","
Последнюю строку печатаем с нужным окончанием

Код: Выделить всё

print s"\n\t]\n}"