analisar tnsnames.ora usando grep para extrair hostname menos o domínio
Pergunta
Eu tenho tnsnames.ora arquivo como
DB_CONNECTION1=
(description=
(address=
(protocol=tcp)
(host=myhost1.mydomain.com)
(port=1234)
)
(connect_data=
(sid=ABCD)
(sdu=4321)
)
DB_CONNECTION2=
(description=
(address=
(protocol=tcp)
(host=myhost2.mydomain.com)
(port=1234)
)
(connect_data=
(sid=ABCD)
(sdu=4321)
)
O que expressão regular que eu preciso para usar para extrair o valor myhost do host chave.
Ouput should be
myhost1
myhost2
Solução
Como impressões grep toda a linha, você poderia fazê-lo em etapas como:
grep "(host=" tnsnames.ora | cut -f 2 -d '=' | cut -f 1 -d '.'
Para decompô-lo:
- grep "(host =" tnsnames.ora - encontra todas as linhas com a entrada "(host ="
- corte -f 2 -d '=' - encontra o que está na coluna número 2 se você dividir pelo caractere '='
- corte -f 1 -d '' - encontra o que está na coluna número 1 se você dividir por o '. caráter
Você pode executar a cadeia de comandos para qualquer ponto, para ver o resultado intermédio, como:
grep "(host=" tnsnames.ora | cut -f 2 -d '='
iria dar-lhe:
myhost1.mydomain.com)
myhost2.mydomain.com)
Dessa forma, é fácil de construir seu conjunto de comandos para fazer este tipo de coisa.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow