#!/usr/bin/awk -f # resolv.awk - create Windows resolv.conf from ipconfig /all output { sub( /\r/, "", $NF) } # trim \r # collect DNS domain suffixes /D[Nn][Ss]\sSuffix[^:]*:\s\S/ { domain[$NF] = $NF } # collect DNS search suffixes /Search\sList[^:]*:\s\S/ { search[$NF] = $NF } # collect DNS server IP addresses /DNS\sServers[^:]*:\s\S/ { dns = 1 } # enable dns && $NF ~ /^[0-9.]+$/ { nameserver[++ns] = $NF } # collect dns && $NF !~ /^[0-9.]+$/ { dns = 0 } # disable # output unique resolv.conf entries END { for (n = 1; n <= ns; ++n) { print "nameserver", nameserver[n] } for (d in domain) { print "domain", domain[d] } p = "search" for (s in search) { printf "%s %s", p, search[s] p = "" } if (!p) { print p } }