如何从 IP 地址列表中删除本地 IP?

如何从 IP 地址列表中删除本地 IP?

我有一个包含 IP 列表的变量,我想删除设置该变量的实例的 IP

请参阅下文

[root@ip-10-10-2-100 ~]# INSTANCE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)

[root@ip-10-10-2-100 ~]# echo $INSTANCE_IP
10.10.2.100

[root@ip-10-10-2-100 ~]# IP_LIST=$(aws ec2 describe-instances --region us-east-1 --filters 'Name=tag:Name,Values=tw-app-ecs' 'Name=instance-state-name,Values=running' --query "Reservations[*].Instances[*].PrivateIpAddress" --output=text)

[root@ip-10-10-2-100 ~]# echo $IP_LIST
10.10.2.100 10.10.4.158

那么我该如何对这个变量进行操作IP_LIST以便可以删除本地 IP (10.10.2.100) 并获得下面的预期结果?

预期结果:

[root@ip-10-10-2-100 ~]# echo $IP_LIST
10.10.4.158

这应该是动态的,取决于变量设置的实例。非常感谢您的帮助。谢谢!

答案1

只是想到了grep -v 花了几个小时寻找方法后,终于在发布后几分钟找到了 grep -v

IP_LIST=$(aws ec2 describe-instances --region us-east-1 --filters 'Name=tag:Name,Values=tw-app-ecs' 'Name=instance-state-name,Values=running' --query "Reservations[*].Instances[*].PrivateIpAddress" --output=text | grep -v `curl -s http://169.254.169.254/latest/meta-data/local-ipv4`)

相关内容