我有一个属性文件,其中包含以下条目:
some.url={ipaddress}/blah
我想用{ipaddress}替换正在运行的机器的ip。
我找到了这个命令:
ipconfig getifaddr en0
输出ip。
我也发现sed对于这类事情很有用,但我不能完全把它放在一起。
sed -i '' 's/{ipaddress}/192.168.0.1/g' test.properties
需要用硬编码的IP地址192.168.0.1代替机器的地址。
有人可以帮忙吗?
答案 0 :(得分:2)
您可以将ipconfig
命令的结果存储在如下变量中:
ip=$(ipconfig getifaddr en0)
然后通过用双引号括起表达式将其插入到sed命令中:
sed -i "" "s/{ipaddress}/$ip/g" test.properties
答案 1 :(得分:0)
试试这个:
cat file
some.url=10.10.10.5/blah
awk -F"=|/" '{print $1 "=" ip "/" $3}' ip=$(ip route get 8.8.8.8 | awk '{print $NF;exit}') file
some.url=192.168.1.30/blah
ip route get 8.8.8.8 | awk '{print $NF;exit}'
是我发现获得正确IP的最好方法之一。它甚至可以在VPS服务器和具有多个IP的服务器上运行