Linux

如何從資訊中擷取IP地址

  • May 16, 2019

通過以下 api 我們可以獲取有關 master1/2 機器的資訊

curl -sH "X-Requested-By: ambari" -u "admin"":""admin" -i http://192.23.39.2:8080/api/v1/hosts?fields=Hosts/host_name,Hosts/ip | egrep "master1|master3"  | grep http  
     "href" : "http://192.23.39.2:8080/api/v1/hosts/master1.usa14.com",
     "href" : "http://192.23.39.2:8080/api/v1/hosts/master3.usa14.com",

現在我更新 api 以僅獲取 master1/3 的 IP

curl -sH "X-Requested-By: ambari" -u "admin"":""admin" -i http://192.23.39.2:8080/api/v1/hosts?fields=Hosts/host_name,Hosts/ip | egrep "master1|master3"  | grep http | sed s'/\/\// /g' | sed s'/:/ /g' | awk '{print $3}'

192.23.39.2
192.23.39.2

但我的 api 不是那麼優雅

任何其他建議如何擷取IP?

您可以通過簡單地使用awk字元串操作函式來做到這一點

awk -F'/[/]?' '$NF ~ /^(master1|master3).*/{ n=split($2,arr,":"); print arr[1] }'

使用 grep :

 grep 'master[1,3]' | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"

引用自:https://unix.stackexchange.com/questions/517554