【问题标题】:Extracting load balancer name from elb DNSname in bash从 bash 中的 elb DNSname 中提取负载均衡器名称
【发布时间】:2019-04-03 10:10:43
【问题描述】:

我有一个我的 ELB 的 DNS 名称列表,我想从 DNS 名称中提取负载平衡器名称。

假设 DNS 名称是 my-example-loadbalancer-123456789.us-east-1.elb.amazonaws.com,我想提取名称 my-example -负载平衡器 .

【问题讨论】:

  • 使用<your-command-producing DNS names> | cut -d '.' -f1 | cut -d '-' -f1,2,3
  • 这将返回 my-example-loadbalancer-123456789,但我只需要 my-example-loadbalancer 。
  • 实际名称中可以有多个字段。所以基本上我需要 "-123456789.us-east-1.elb.amazonaws.com" 之前的模式。

标签: bash amazon-elb


【解决方案1】:

问题是要找到与您要保留的部分或要删除的部分匹配的模式。对于您的问题和 cmets,您似乎可以使用

sed 's/-[0-9]\+.*//'

你可以匹配额外的 .明确地,正如 Michael-sqlbot 所建议的那样。您还可以添加更多相同的名称,例如:

s/-[0-9]\+.us.*//

(或 s/-[0-9]\+\.us.*//,如果您想明确匹配 .)。关键是您需要查看您的数据是如何以可能性的方式构建的。例如,如果您有非美国负载均衡器,您可能不会尝试匹配 us

【讨论】:

  • 更精确(诚然基于问题中未提及的可能性)明确匹配数字后的点,因为破折号和数字可能出现在字符串的前面,例如cluster-16-prod-123456789.us-east-1.elb.amazonaws.com ... 's/-[0-9]+\..*//'
猜你喜欢
  • 2019-01-06
  • 2019-01-24
  • 2017-09-25
  • 2017-01-25
  • 1970-01-01
  • 2020-05-29
  • 2021-12-07
  • 2013-08-10
  • 2017-11-02
相关资源
最近更新 更多