在Grep命令的末尾附加运算符以设置为Bash变量

时间:2018-07-24 15:41:47

标签: bash alias

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

$ 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地址末尾添加两个。

示例171.11.111.0 => 172.11.111.2

对此问题有何建议???我正在尝试使用别名命令来引用引用的脚本,以使我们的实验室更加高效,该脚本将与正在运行的实验室vm匹配,并按下其键以方便访问原始配置的实验室。

1 个答案:

答案 0 :(得分:0)

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

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以产生机器可读的输出,并且/或者也许将其转换成可以从另一个Python脚本import替换为该shell的模块。管道。

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