Minimamente testado; para obter melhores resultados, em cada [ ] , adicione uma guia dentro dos colchetes:
networksetup -setdnsservers AirPort $(sed -ne 's/^[ ]*nameserver[ ]\+\([.:0-9A-Fa-f]\+\)//p' /etc/resolv.conf)
A expressão sed extrai endereços de linhas que começam com a palavra nameserver seguida por um endereço IPv4 ou IPv6. A construção $() interpola a saída de sed na linha de comando de networksetup .
Se houver uma chance de que não haja nenhuma linha nameserver em /etc/resolv.conf , veja uma maneira relativamente simples:
nameservers=$(sed -ne 's/^[ ]*nameserver[ ]\+\([.:0-9A-Fa-f]\+\)//p' /etc/resolv.conf)
if [ -z "$nameservers" ]; then nameservers=empty; fi
networksetup -setdnsservers AirPort $nameservers