grep 命令仅提取某些单词

tes*_*787 6 grep

我有一个大报告,其中有许多随机行显示的 IP 地址。所有 IP 地址都以 192.168 开头。我只想提取 IP 地址并获得如下所示的报告:

192.任何事.任何事.任何事

192.xx.xx.xx

192.xx.xx.xx

没有别的。我试过cat filename | grep -w 192 似乎得到了整条线。我只想要完整的 IP 地址。我感谢您可以与我分享的任何信息。

Kla*_*ker 14

我这样做egrep -ogrep -E -o

grep 中的 -E 标志激活正则表达式(这是 egrep 默认情况下所做的),而 -o 标志打印匹配的字符串。

grep -E -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' /path/to/log
192.168.1.11
Run Code Online (Sandbox Code Playgroud)


unx*_*nut 1

sed -n 's/.*\(192.168.[^ ]*\).*/\1/p' filename
Run Code Online (Sandbox Code Playgroud)

应该可以解决问题。 \>表示单词结束。