我正在研究一个Python(3.6)项目,在该项目中我需要通过子过程模块运行一些命令。它以以下格式返回输出:
有时以这种方式:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
app-service LoadBalancer 10.15.255.188 35.224.27.211 8080:30323/TCP 3m
kubernetes ClusterIP 10.15.240.1 <none> 443/TCP 5m
但有时以这种方式:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.15.255.188 35.224.27.211 8080:30323/TCP 3m
node-app LoadBalancer 10.15.240.1 <none> 443/TCP 5m
它实际上按字母顺序显示这些行,但是我一直想获取其他任何行的4th
列而不是kubernetes
行,这是默认行,每次都会附带它,所以如何我抓住另一排的
4th
列是位于kubernetes
行之前还是此行之后。
当前我得到的输出为:
out_ip = subprocess.check_output(["kubectl get svc | awk '{print $4}'"], shell=True)
all_ips = out_ip.decode().split('\n')
ip = all_ips[2]
print(ip)
它总是返回第二行的4th
列,当另一行在字母k
之后时,这很好,但是在k
之前时,它显示在{{ 1}}行。
那么,如何应用条件从所需的行中获取kubernetes
?
请帮帮我!
谢谢!