Parsen tnsnames.ora grep Hostnamen zu extrahieren, minus die Domain
Frage
Ich habe tnsnames.ora Datei wie
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)
)
Was für reguläre Ausdrücke tun i verwenden, um den Wert myhost aus dem Schlüssel-Host zu extrahieren.
Ouput should be
myhost1
myhost2
Lösung
Wie grep die ganze Zeile druckt, können Sie es in den Schritten tun könnte wie:
grep "(host=" tnsnames.ora | cut -f 2 -d '=' | cut -f 1 -d '.'
Um es zu brechen:
- grep "(host =" tnsnames.ora - findet alle Zeilen mit dem Eintrag "(host ="
- cut -f 2 -d '=' - findet, was in der Spalte Nummer 2 ist, wenn man von den '=' Zeichen teilt
- cut -f 1 -d '' - findet, was in der Spalte Nummer 1 ist, wenn Sie durch die dividieren ‚‘ Zeichen
Sie können die Kette von Befehlen an jeden Punkt auszuführen, um das Zwischenergebnis zu sehen, wie:
grep "(host=" tnsnames.ora | cut -f 2 -d '='
Würde geben Sie:
myhost1.mydomain.com)
myhost2.mydomain.com)
Auf diese Weise ist es einfach, Ihren Satz von Befehlen zu bauen diese Art der Sache zu tun.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow