我需要编写一个shell脚本,它将从显示的命令行输出中获取自定义结果。
考虑以下场景:
这是命令和相关输出。
root@devstack:/opt/devstack# /usr/local/bin/neutron subnet-list
+--------------------------------------+---------------------+---------------------+-------------------------------------------------------------------------------+
| id | name | cidr | allocation_pools |
+--------------------------------------+---------------------+---------------------+-------------------------------------------------------------------------------+
| 3efe15d0-24a4-4618-8034-26345438da41 | private-subnet | 10.0.0.0/24 | {"start": "10.0.0.2", "end": "10.0.0.254"} |
| 4bf54b31-c14c-493b-92c1-079c65484113 | public-subnet | 172.24.4.0/24 | {"start": "172.24.4.2", "end": "172.24.4.254"} |
| 4fbe1ac2-ff40-4efa-8333-2c02be54312e | ipv6-private-subnet | fd6e:78a4:ae52::/64 | {"start": "fd6e:78a4:ae52::2", "end": "fd6e:78a4:ae52:0:ffff:ffff:ffff:ffff"} |
| 09b45af3-ef6f-4ad8-a4cb-643b218f0439 | ipv6-public-subnet | 2001:db8::/64 | {"start": "2001:db8::3", "end": "2001:db8::ffff:ffff:ffff:ffff"} |
| | | | {"start": "2001:db8::1", "end": "2001:db8::1"} |
+--------------------------------------+---------------------+---------------------+-------------------------------------------------------------------------------+现在,我需要的是只获取名称字段的id,该字段具有以下值:
private-subnet
public-subnet我已经尝试了下面的命令,只获取id而不指定条件:
root@devstack:/opt/devstack# /usr/local/bin/neutron subnet-list | awk '{print $2}'
id
4fbe1ac2-ff40-4efa-8333-2c02be54312e
09b45af3-ef6f-4ad8-a4cb-643b218f0439
|
3efe15d0-24a4-4618-8034-26345438da41
4bf54b31-c14c-493b-92c1-079c65484113有人告诉我只获取"id“的价值,其中name的值是”private-subnet.“和”public-subnet.“。
发布于 2015-12-07 18:46:03
我已经用中子子网列表命令可用的选项执行了相同的操作。
我可以按照预期得到所需的结果。
root@devstack:/opt/devstack# /usr/local/bin/neutron subnet-list --field id --name private-subnet
+--------------------------------------+
| id |
+--------------------------------------+
| 3efe15d0-24a4-4618-8034-26345438da41 |
+--------------------------------------+https://stackoverflow.com/questions/34130700
复制相似问题