linux输出grep一个内部ip by hostname

时间:2016-04-12 09:31:26

标签: linux bash shell

关于linux输出的问题: 使用gcloud列出我的虚拟机实例:

HOSTNAME="chef-production2-doctor-simulator01"
gcloud compute instances list |grep $HOSTNAME
chef-production2-doctor-simulator01 us-central1-b n1-standard-1                         10.128.0.2  x.x.x.x   RUNNING

如何grep内部ip并将其输出到bash变量?

INTERNAL_IP="$(gcloud compute instances list |grep $HOSTNAME)"

2 个答案:

答案 0 :(得分:2)

选择列的常用工具有:cutsedawk。当然,perl

awk通常是最短的解决方案,但您必须学习它的语法。

gcloud compute instances list | \
awk '/chef-production2-doctor-simulator01/ { print $2 }'

可能就是你要找的东西。您可能需要明确分隔符。很难说出上面显示的例子中使用了哪些分隔符。

答案 1 :(得分:0)

你可以试试这个:

var INTERNAL_IP="$(gcloud compute instances list | grep chef-production2-doctor-simulator01 | tr -s "  " | cut -d ' ' -f4)"

tr -s“”删除所有双空格 削减-d'' - f4会削减ip

或作为anony提到(哪个更好):

var INTERNAL_IP="$(gcloud compute instances list | awk '/chef-production2-doctor-simulator01/ { print $4 }'")