analizar tnsnames.ora usando grep para extraer el nombre de host menos el dominio
Pregunta
Tengo un archivo tnsnames.ora 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)
)
¿Qué expresión regular necesito usar para extraer el valor myhost del host clave?
Ouput should be
myhost1
myhost2
Solución
A medida que grep imprime toda la línea, puede hacerlo en pasos como:
grep "(host=" tnsnames.ora | cut -f 2 -d '=' | cut -f 1 -d '.'
Para desglosarlo:
- grep " (host = " tnsnames.ora - encuentra todas las líneas con la entrada " (host = "
- cut -f 2 -d '=' - encuentra lo que está en la columna número 2 si divide por el carácter '='
- cortar -f 1 -d '.' - encuentra lo que está en la columna número 1 si divide entre '.' personaje
Puede ejecutar la cadena de comandos en cualquier punto, para ver el resultado intermedio, como:
grep "(host=" tnsnames.ora | cut -f 2 -d '='
Te daría:
myhost1.mydomain.com)
myhost2.mydomain.com)
De esa manera, es fácil construir su conjunto de comandos para hacer este tipo de cosas.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow