Linux
根據主機名規則在文件中進行 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 命令 - 我們不會在以下情況下替換主機名:
規則:
$$ NUMBERS $$||$$ letter $$主機名$$ NUMBERS $$||$$ letter $$ 我的問題
在我使用 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 . . . .
使用 fowling 行列印匹配字元串
perl -i -pe 'next if /^ *#/; if ($_ =~ /(\b|[[:^alnum:]])$ENV{previos_machine_name}(\b|[[:^alnum:]])/) { print STDOUT $_; }' file
如果它列印為空,則意味著不存在舊主機名。