анализ tnsnames.ora с использованием grep для извлечения имени хоста за вычетом домена - PullRequest
0 голосов
/ 13 сентября 2009

У меня есть файл tnsnames.ora, как

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

1 Ответ

1 голос
/ 13 сентября 2009

Поскольку grep печатает всю строку, вы можете сделать это следующим образом:

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

Чтобы разбить его:

  1. grep "(host =" tnsnames.ora - находит все строки с записью "(host ="
  2. cut -f 2 -d '=' - находит, что находится в столбце № 2, если вы разделите на символ '='
  3. cut -f 1 -d '.' - находит то, что находится в столбце № 1, если вы разделите на «.» символ

Вы можете выполнить цепочку команд в любой точке, чтобы увидеть промежуточный результат, например:

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

даст вам:

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

Таким образом, вы легко можете создать свой набор команд для такого рода вещей.

...