В Debian 8.5 не существует поддерживаемого и / или достаточного решения для оборудования.
Это не очень красиво, но я думаю, что это поможет.
awk -F":" 'BEGIN {RS=""};{$1="";$3=$5=$7=":";gsub(/(\ *)?:(\ *)?/,":");print $0}' test.txt |tr -s " "
Если вы не против завершающих пробелов, вы можете сказать:
awk -v RS='' -v OFS=':' -F'[:\n] *' '{ print $2, $4, $6, $9 " " $10 }'
awk '
/Group:/ {g=$2; next}
/Source:/ {s=$2; next}
/Upstream interface:/ {u=$3; next}
/Downstream interface list:/ {dflag=1; next}
/^$/ {print g ":" s ":" u ":" d; g = s = u = d = ""; dflag = 0; }
{ if (dflag) { if (d == "") d = $1; else d = d " " $1} }
END {print g ":" s ":" u ":" d; g = s = u = d = ""; dflag = 0; }
'
awk
довольно просты:
захватите значения IP-адреса Multicast, IP-адреса источника,
и интерфейса Upstream, когда вы видите соответствующие метки.