Regex - Grep特定的NTP IP地址

时间:2016-05-03 04:22:02

标签: linux grep

[root etc]# grep "^server" /etc/ntp.conf
server 10.10.10.2
server 10.10.11.3
server 10.12.13.4

[root etc]# grep "^\s*server (10\.10\.10\.2|10\.10\.11\.3)" /etc/ntp.conf
[root etc]# (Nothing return)

什么都不显示,我该如何grep特定的IP地址?

4 个答案:

答案 0 :(得分:1)

将grep -E与管道分隔符一起用于OR

grep -E "^server 10.10.10.2|^server 10.10.11.3" /etc/ntp.conf

答案 1 :(得分:1)

您只需要在grep命令中添加-E

grep -E "^\s*server (10\.10\.10\.2|10\.10\.11\.3)" /etc/ntp.conf

答案 2 :(得分:1)

以下内容从标准输入中读取搜索字符串。

grep -F "$(awk NF </dev/stdin)" /etc/ntp.conf | grep -P '^\s*server\s+'
  • grep -F搜索固定字符串
  • $(... </dev/stdin) - 从标准输入读取,直到Ctrl-D按下
  • awk NF删除空行
  • grep -P '^\s*server\s+'搜索上一个server输出中的grep条目

答案 3 :(得分:0)

您可以使用如下所示的简单模式:

   grep 10.10.10.*  filename

或者你必须使用-E扩展正则表达式,如下所示:

   grep -E 10.10.\(10\|11\).*  filename