Shell grep用于查找除一组给定地址之外的IP

Shell grep用于查找除一组给定地址之外的IP,shell,grep,Shell,Grep,使用时 grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" 要对文件中的IP地址进行计数,是否可以从计数中排除一个或多个给定IP?最简单的方法是通过另一个反向grep(参数-v)进行管道传输: 如果您只有一个要排除的ip: grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | grep -vcF "<your ip>" 第二个问题的解释正在进行中 我写了选项的长格式以明确其含义 它只是从输入中排除(--i

使用时

grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}"  

要对文件中的IP地址进行计数,是否可以从计数中排除一个或多个给定IP?

最简单的方法是通过另一个反向grep(参数-v)进行管道传输:


如果您只有一个要排除的ip:

grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | grep -vcF "<your ip>"

第二个问题的解释正在进行中 我写了选项的长格式以明确其含义

它只是从输入中排除(
--invert match
),在提供的文件(
--file=iplist.txt
)中列出的每一行(ip),并打印结果行数(
--count
)->而不是正常输出,这只是为了避免再次使用
wc-l


--需要使用固定字符串
选项来强制grep不解释特殊字符(
在这种情况下)。

是的,您要排除哪个地址?任何地址,比如x.y.t.z最简单的方法是将grep传输到
grep-v'excludeip'
我可以将两个IP放在引号内吗?@Bob是的,您可以,如果有100个IP,您可以将它们保存在一个文件中。然后
你的grep…| grep-vf exc.file
grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | grep -vcF "<your ip>"
grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | grep -vcF -f iplist.txt
grep --invert-match --count --fixed-strings --file=iplist.txt