Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Grep命令末尾追加运算符以设置为Bash变量_Bash_Alias - Fatal编程技术网

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

在Grep命令末尾追加运算符以设置为Bash变量,bash,alias,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 对这个问题有什么建议吗???我正在尝试使用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


对这个问题有什么建议吗???我正在尝试使用alias命令使我们的实验室更加高效,这些命令引用的脚本将匹配运行的实验室虚拟机,并按下它们的键,以便轻松访问香草调配的实验室。

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

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脚本导入
以取代此shell管道


另一方面,您的
grep-Eo
regex可以重构成类似
\
的东西,如果您不最终用Python重写所有这些逻辑,也许整个管道可以重构成一个单独的Awk脚本。

Awk-F'{$NF+=1}1'
。。。使用shell函数或脚本而不是别名。谢谢,我很感激。所以我尝试了一下,它去掉了句点,因为它使用句点作为字段分隔符。在我将其写入脚本时,我需要这些句点,以便可以使用ssh将其写入VM。无论如何,不删除句点但仍使用表达式?当前命令: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])“;awk-F。”{$NF+=2}1'哦,对不起,你需要在开场白后立即添加
BEGIN{OFS=FS}
。很酷,谢谢,我实际上创建了一个脚本来运行并执行以下操作,并动态获取名称和Ip地址。比我设置的每五分钟一次的cron作业对我们服务器上运行的每个实验室环境都有效。不客气。如果这个答案有助于解决你的问题,请考虑投票和/或接受它。另见