我正在编写一个脚本来使用当前动态地址更新hosts文件。我从ifconfig获取地址并使用sed更新/ etc / hosts。
#following returns the current VPN address e.g. 10.8.0.14
ifconfig | grep -oP 'inet addr:\K(.*)?(?= P-t-P)'
#following can be used to replace the original one with the VPN address
sudo sed -i 's/127.0.1.1/{new address}/g' /etc/hosts
但是如何将grep的输出传输到sed中的替换文本{new address}?是否可以在一条线上执行此操作?
答案 0 :(得分:4)
sudo sed -i "s/127.0.1.1/$(ifconfig | grep -oP 'inet addr:\K(.*)?(?= P-t-P)')/g" /etc/hosts