我对Linux和编写脚本等非常陌生。我有一个任务,我需要从一个数据库中找到一个IP地址,然后使用这个IP对一堆文件进行grep,然后查看下一个文件是否存在。目前,我必须先写:
rwhois -Br 0.0.0.0然后
grep -wl '0.0.0.0\|0.0.0.1' /path/to/some/files我必须手动更改rwhois和grep中的最后一个数字。我已经写了一个简单的函数,如下所示
function info () {
rhowis -Br $1
grep -w '$1\|$1'
}当然,我必须以某种方式将后一个输入的值增加1。有什么好的建议吗?感谢您对所做更改的一小段解释,这样我就可以从中学习。谢谢!
发布于 2017-07-13 16:59:05
使用awk只需增加最后一位数就很简单
info() {
local ip="$1"
local nextip=$(awk -F. '{ print $1 "." $2 "." $3 "." ($4+1) }' <<<"$1")
rhowis -Br "$ip"
grep -w "$ip\|$nextip'
}请注意,这不会处理换行(当最后一个数字是255时),但如果不需要处理广播地址,这应该不是问题。
发布于 2017-07-13 16:58:53
ip=$(awk -F\. '{ print $1"."$2"."$3"."($4+1) }' <<< $1)使用awk,您可以设置一个可变ip。我们将分隔符设为".“然后输入初始IP地址,然后打印出第一个、第二个和第三个分隔符,以及第四个递增一的分隔符。
然后我们将采取行动:
grep -w '$1\|$ip'https://stackoverflow.com/questions/45075645
复制相似问题