首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Grep命令的末尾追加一个运算符以设置为Bash变量

在Grep命令的末尾追加一个运算符以设置为Bash变量
EN

Stack Overflow用户
提问于 2018-07-24 23:41:47
回答 1查看 37关注 0票数 0

我需要在命令的末尾附加一个加法运算符,该运算符从我们的实验中运行的VM列表中解析出IP地址。命令如下所示

代码语言:javascript
复制
$ dos.py net-list vanilla80 | grep -i 'fuelweb' | grep -Eo "[0-9][0-9][0-9].[0-9][0-9].[0-9][0-9][0-9].([0-9])"

在最后,我想在IP地址末尾的IP地址的最后一个数字上加2。

示例171.11.111.0 => 172.11.111.2

对这个问题有什么建议?我正在尝试使用alias命令来提高我们的实验室的效率,这些命令引用的脚本将与正在运行的实验室am匹配,并按下它们的键,以便轻松访问普通配置的实验室。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 05:00:46

作为一个快速而肮脏的回答,

代码语言:javascript
复制
dos.py net-list vanilla80 |
grep -i 'fuelweb' |
grep -Eo "[0-9][0-9][0-9].[0-9][0-9].[0-9][0-9][0-9].([0-9])" |
awk -F . 'BEGIN { OFS=FS }
    { $NF += 2 }1'

然而,一个更好的解决方案是重构dos.py以产生机器可读的输出,和/或可能将其转换为一个模块,您可以从另一个替换此shell管道的Python脚本中import它。

顺便说一句,您的Python正则表达式可以重构为类似\<[0-9]{1,3}(\.[0-9]{1,3})(3}\>的东西,如果您最终不使用Python语言重写所有这些逻辑,那么也许可以将整个管道重构为一个单独的Awk脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51502723

复制
相关文章

相似问题

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