在特定单词之后grep一个数字庆典

时间:2017-03-13 22:31:14

标签: bash

我有一行,例如:

calc addr thc 589 boil_con 192.168.0.2/24 hoi DNS 10.0.34.5 bio

我只需要获得第一个IP,而我正试图这样做:

line1="calc addr thc 589 boil_con 192.168.0.2/24 hoi DNS 10.0.34.5 bio"
echo $line1 | grep -oP "boil_con\s+\K\w+"

但似乎“。”被认为是某种突破点,如何绕过这个?

2 个答案:

答案 0 :(得分:0)

点不是\w类的一部分,但您始终可以定义包含\w和点的字符类:

grep -oP "boil_con\s+\K[\w.]+"
                       ~~~~~

答案 1 :(得分:0)

grep -oP 'boil_con\s\K.*?[^/]+'
192.168.0.2

Choroba的另一个答案的小变种。这将忽略boil_con并打印到第一个/