[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地址?
答案 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