Utilice dos spearators de campo en awk [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Delimitador múltiple AWK 6 respuestas

Estoy tratando de analizar una cadena como esta con bash

OPS |all|1234|ip:port1|name|state|number|id|phone=123;zip=123;state=AB;city=seattle .
OPS |all|1234|ip:port2|name|state|number|id|phone=123;zip=123;state=AB;city=spokane .

Quiero una salida como esta

seattle | ip port1
spokane | ip port2

Estaba tratando de usar awk con este

awk -F'|' '{ n = split($4,array,"|"); printf "%s, %s\n", $4, array[n] }' file.txt

pero no está imprimiendo los detalles que quiero

Respuestas a la pregunta(1)

Su respuesta a la pregunta