Назад | Перейти на главную страницу

Проверка Linux / Solaris (после изменения имени хоста) в файлах согласно правилу имени хоста

Согласно следующей команде Perl

(эта командная часть сценария ksh)

Я могу заменить старые имена хостов новыми именами в Linux или Solaris

 previos_machine_name=linux1a
 new_machine_name=Red_Hat_linux1a

 export previos_machine_name
 export new_machine_name

.

      perl -i -pe 'next if /^ *#/; s/(\b|[[:^alnum:]])$ENV{previos_machine_name}(\b|[[:^alnum:]])/$1$ENV{new_machine_name}$2/g'  file

ОБЪЯСНЕНИЕ: согласно команде perl - мы не замените имена хостов в следующем случае:

ПРАВИЛО: [НОМЕРА] || [буква] ИМЯ ХОСТА [НОМЕРА] || [буква]

мой вопрос

после того, как я использовал команду Perl, чтобы заменить все старые имена хостов новыми именами хостов на основе «ПРАВИЛА» в команде Perl

как проверить, что старые имена хостов не существуют в файле?

например

   previos_machine_name=linux1a

   new_machine_name=Red_Hat_linux1a

   more file

   AAARed_Hat_linux1a          verification should be ignore from this line
   @Red_Hat_linux1a$             verification should be match this line
   P=Red_Hat_linux1a            verification should be match this line
   XXXRed_Hat_linux1aZZZ         verification should be ignore from this line
   .
   .
   .
   .

Используйте нижнюю строку для печати строки соответствия

perl -i -pe 'next if /^ *#/; if ($_ =~ /(\b|[[:^alnum:]])$ENV{previos_machine_name}(\b|[[:^alnum:]])/) { print STDOUT $_; }'  file

Если он напечатан пустым, это означает, что старого имени хоста не существует.