Eu nunca vi uma descrição formal de tnsnames.ora
, então estou adivinhando o formato. Aqui está minha tentativa em um script para fazer o que você quer:
#!/bin/bash
HOST=$1
tr '()' '\n\n' < input |
awk 'BEGIN {host=""; port=""}
/[Hh][Oo][Ss][Tt]/ {host=$3}
/[Pp][Oo][Rr][Tt]/ {port=$3}
host && port {
if (host == "'$HOST'") {print host, port}
host=""; port=""
}
'
Isso é o GNU awk
em uma instalação razoavelmente atualizada do Arch Linux.