我有以下的/ etc/hosts文件1班輪腳本來獲得服務器(使用ifconfig)的IP地址,並追加到主機名到/ etc/hosts文件進行匹配ip地址
[[email protected] tmp]# cat hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
119.13.248.1 ccvcds1.ihost.com vcds1
171.221.160.11 vhost.ihost.com vhost41
[[email protected] tmp]# echo $(ifconfig eth0 | grep "inet addr:" | cut -d ":" -f 2 | cut -d " " -f 1)
171.221.160.11
如何使用SED或AWK一條線將「AWSHOST」添加到匹配的ip線。所以改變將是:
[[email protected] tmp]# cat hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
119.13.248.1 ccvcds1.ihost.com vcds1
171.221.160.11 vhost.ihost.com vhost41 AWSHOST
我試圖管輸出的上述命令sed和awk,它不工作。任何幫助非常感謝
這是正確的,完美的工作。非常感謝:) – user1988058
請注意,這可能會匹配您不想要的hosts文件中的行,因爲它將原始ip地址及其所有點傳遞到sed,就好像它是一個常規表達。如果你的'ifconfig'行返回127.0.0.10,這個命令將把主機名添加到127.0.0.1 –
@RobDavis好點,我在末尾加了'[\ t]'來防止這一點。另外,管道序列可以用'|擴展sed's /\./\\./ g''來逃避這些點。 –