iT邦幫忙

0

请问怎么通过 grep 从命令结果中获取某一个或某几个单词或数字

比如,我想获取计算机的 IP 地址,我可以使用 IP addr。但我应该怎么加管道符和 grep 来过滤,只显示 IP?

假设我已经知道了我想要的 IP 的前缀(网络号)

[kiosk@foundation0 ~]$ ip addr | grep "inet "
    inet 127.0.0.1/8 scope host lo
    inet 10.10.10.109/24 brd 10.10.10.255 scope global dynamic noprefixroute ens256
    inet 172.25.254.250/24 brd 172.25.254.255 scope global noprefixroute br0
    inet 172.25.0.250/24 brd 172.25.0.255 scope global noprefixroute br0
    inet 172.25.250.250/24 brd 172.25.250.255 scope global privbr0
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    inet 192.168.123.1/24 brd 192.168.123.255 scope global br1

fillano iT邦超人 1 級 ‧ 2020-08-14 15:17:04 檢舉
-o
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-08-14 15:13:22
最佳解答

看看這篇的 Regular Expression合不合用

看更多先前的回應...收起先前的回應...
as900 iT邦研究生 4 級 ‧ 2020-08-15 14:50:19 檢舉

这个方法可以,在这个方法的后面加个管道和 grep 过滤掉网管地址和广播地址,剩下的 IP 都是想要的 IP 了。就是不太明白表达式的含义

"([0-9]{1,3}[\.]){3}[0-9]{1,3}"
fillano iT邦超人 1 級 ‧ 2020-08-15 15:22:44 檢舉

哪部分不懂?

[]是指定出現的內容,[0-9]就是所有數字。{}指定量詞,{1,3}就是指前面的樣式出現1~3次。()是指定樣式群組,後面加量詞{3}就是群組會重複三次。

純粹應個景,來個高雄(光榮投){3}
/images/emoticon/emoticon74.gif

as900 iT邦研究生 4 級 ‧ 2020-08-17 09:15:52 檢舉

就是后面的{1,3},现在明白了,谢谢!

我要發表回答

立即登入回答