如何grep两个IP地址并增加最后一个数字的值?

我很新的Linux和编写脚本等我有这个任务,我需要从数据库中find一个IP地址,然后grep一堆文件与这个IP和下一个看到,如果他们有任何存在那里。 目前我必须先写:

rwhois -Br 0.0.0.0 

接着

 grep -wl '0.0.0.0\|0.0.0.1' /path/to/some/files 

我必须手动更改rwhois和grep中的最后一位数字。 我甚至写了一个这样的简单function

 function info () { rhowis -Br $1 grep -w '$1\|$1' } 

但是,当然,我不得不以某种方式将后面的input值增加1.任何好的build议? 对于你所改变的一个小小的解释,我很欣赏,所以我可以从中学习。 谢谢!

awk增加最后一个数字很简单:

 info() { local ip="$1" local nextip=$(awk -F. '{ print $1 "." $2 "." $3 "." ($4+1) }' <<<"$1") rhowis -Br "$ip" grep -w "$ip\|$nextip' } 

请注意,这不会处理包装(最后一位数字是255 ),但如果您不需要处理广播地址,这应该不成问题。

 ip=$(awk -F\. '{ print $1"."$2"."$3"."($4+1) }' <<< $1) 

用awk你可以设置一个变量ip。 我们将分隔符设置为“。” 然后取出初始IP地址,然后打印出第一,第二和第三个分隔的部分,并将第四个加1。

那么我们会采取行动:

 grep -w '$1\|$ip'