我有一行,例如:
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+"
但似乎“。”被认为是某种突破点,如何绕过这个?
答案 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
并打印到第一个/
。