تحليل tnsnames.أورا باستخدام البقرى لاستخراج المضيف ناقص المجال

StackOverflow https://stackoverflow.com/questions/1417026

  •  06-07-2019
  •  | 
  •  

سؤال

لدي tnsnames.أورا الملف مثل

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)
  )

ما التعبير العادي هل أنا بحاجة إلى استخدام لاستخراج قيمة myhost من مفتاح المضيف.

Ouput should be 
myhost1
myhost2
هل كانت مفيدة؟

المحلول

كما البقرى يطبع خط كامل, يمكنك أن تفعل ذلك في خطوات مثل:

grep "(host=" tnsnames.ora | cut -f 2 -d '=' | cut -f 1 -d '.'

كسر:

  1. البقرى "(host=" tnsnames.أورا -- يجد كل الخطوط مع دخول "(host="
  2. قطع و 2 -د '=' -- يجد ما هو في العمود رقم 2 إذا كنت القسمة على '=' حرف
  3. cut -f 1 -د '.' -- يجد ما هو في العمود رقم 1 إذا قمت بتقسيم قبل '.' حرف

يمكنك تنفيذ سلسلة من الأوامر إلى أي نقطة ، لمعرفة النتيجة الوسيطة, مثل:

grep "(host=" tnsnames.ora | cut -f 2 -d '='

سوف تعطيك:

myhost1.mydomain.com)
myhost2.mydomain.com)

بهذه الطريقة فإنه من السهل لبناء مجموعة من الأوامر للقيام بهذا النوع من الشيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top