首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何grep两个IP地址并增加最后一个数字的值?

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

Stack Overflow用户
提问于 2017-07-13 16:44:17
回答 2查看 1.1K关注 0票数 3

我对Linux和编写脚本等非常陌生。我有一个任务,我需要从一个数据库中找到一个IP地址,然后使用这个IP对一堆文件进行grep,然后查看下一个文件是否存在。目前,我必须先写:

代码语言:javascript
复制
rwhois -Br 0.0.0.0

然后

代码语言:javascript
复制
grep -wl '0.0.0.0\|0.0.0.1' /path/to/some/files

我必须手动更改rwhois和grep中的最后一个数字。我已经写了一个简单的函数,如下所示

代码语言:javascript
复制
function info () {
    rhowis -Br $1
    grep -w '$1\|$1'
}

当然,我必须以某种方式将后一个输入的值增加1。有什么好的建议吗?感谢您对所做更改的一小段解释,这样我就可以从中学习。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-13 16:59:05

使用awk只需增加最后一位数就很简单

代码语言:javascript
复制
info() {
    local ip="$1"
    local nextip=$(awk -F. '{ print $1 "." $2 "." $3 "." ($4+1) }' <<<"$1")
    rhowis -Br "$ip"
    grep -w "$ip\|$nextip'
}

请注意,这不会处理换行(当最后一个数字是255时),但如果不需要处理广播地址,这应该不是问题。

票数 1
EN

Stack Overflow用户

发布于 2017-07-13 16:58:53

代码语言:javascript
复制
ip=$(awk -F\. '{ print $1"."$2"."$3"."($4+1) }' <<< $1)

使用awk,您可以设置一个可变ip。我们将分隔符设为".“然后输入初始IP地址,然后打印出第一个、第二个和第三个分隔符,以及第四个递增一的分隔符。

然后我们将采取行动:

代码语言:javascript
复制
grep -w '$1\|$ip'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45075645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档