仅从与正则表达式匹配的行过滤字符串

时间:2018-02-26 09:00:17

标签: regex bash sed grep

我有一些前面的代码输出这一行。现在我想仅仅分离'us-west1-c'部分中的信息。但是,这些信息可能会改变,尽管格式相同。例如,它将显示为“us-east1-b”或“europe-west2-c”。因此,正则表达式可以说是test-group us-west1-c zone default Yes 1 。但是,我似乎找不到使用此正则表达式从行中仅过滤此值的方法。

grep -ow '*-*-*'

我试过了:

sed 's/.*\(*-*-*\).*/\1/'

哪个不产生输出。

我也试过了:

{{1}}

再次失败。

如何,我只能输出符合我要求的字符串吗?

2 个答案:

答案 0 :(得分:0)

您可能需要以下内容:

 \w+-\w+-\w

答案 1 :(得分:0)

这应该有效,我测试了它。

grep "[^ ]*-[^ ]*-[^ ]*"