我很新的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'