我是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.任何好的建议?并且对你所改变的内容的一个小解释表示赞赏,因此我可以从中学习。谢谢!
答案 0 :(得分:1)
ip=$(awk -F\. '{ print $1"."$2"."$3"."($4+1) }' <<< $1)
使用awk可以设置变量ip。我们将分隔符设置为“。”然后输入初始IP地址,然后打印出第一个,第二个和第三个分隔的部分以及第四个增加的部分。
然后我们会采取行动:
grep -w '$1\|$ip'
答案 1 :(得分:1)
使用awk
增加最后一位数字很简单:
info() {
local ip="$1"
local nextip=$(awk -F. '{ print $1 "." $2 "." $3 "." ($4+1) }' <<<"$1")
rhowis -Br "$ip"
grep -w "$ip\|$nextip'
}
请注意,这不会处理换行(当最后一个数字为255
时),但如果您不需要处理广播地址,这应该不会有问题。