Shell 从输出中删除列标题
我正在运行以下命令,输出如下所示 和新星名单Shell 从输出中删除列标题,shell,awk,sed,grep,Shell,Awk,Sed,Grep,我正在运行以下命令,输出如下所示 和新星名单 +--------------------------------------+---------------------------------------------------------------------+----------------+--------------------------------------------------+ | id | name
+--------------------------------------+---------------------------------------------------------------------+----------------+--------------------------------------------------+
| id | name | cidr | allocation_pools |
+--------------------------------------+---------------------------------------------------------------------+----------------+--------------------------------------------------+
| 1865fd7d-8971-4b2a-aaa3-c810189c2363 | test-inter-netwk | 192.168.1.0/24 | {"start": "192.168.1.2", "end": "192.168.1.254"} |
| 20214812-48f9-4938-bbd3-1b54cd796425 | App-Mgmt-subnet | 10.20.0.0/24 | {"start": "10.20.0.2", "end": "10.20.0.254"} |
| 7ab22397-e6a9-4a3d-96f0-9ebbce638f1e | vms2.1-net | 192.168.0.0/24 | {"start": "192.168.0.2", "end": "192.168.0.254"} |
| 8f97fc5e-53c6-4f29-9e4e-04f38a283452 | ddddd | 10.24.0.0/24 | {"start": "10.24.0.2", "end": "10.24.0.254"} |
| 990b338c-c980-456e-ade1-fc1a90f233e5 | Orch-Mgmt-subnet | 10.32.1.0/24 | {"start": "10.32.1.2", "end": "10.32.1.254"} |
| f386aca1-4c18-4b8e-9df7-a70111dea849 | TRANSIT-NEXTIP-Skyfall-eb07721aa407423e83e9641855f51e35-mseg-SUBNET | 10.22.0.0/24 | {"start": "10.22.0.2", "end": "10.22.0.254"} |
+--------------------------------------+---------------------------------------------------------------------+----------------+--------------------------------------------------+
命令
neutron subnet-list | awk -F "|" '{print $2}'
输出
输出以两个空行开始,文本“id”和空行。我只需要id,我正在努力删除前几行
id
1865fd7d-8971-4b2a-aaa3-c810189c2363
20214812-48f9-4938-bbd3-1b54cd796425
7ab22397-e6a9-4a3d-96f0-9ebbce638f1e
8f97fc5e-53c6-4f29-9e4e-04f38a283452
990b338c-c980-456e-ade1-fc1a90f233e5
f386aca1-4c18-4b8e-9df7-a70111dea849
您可以向awk语句添加条件:
neutron subnet-list | awk -F "|" 'NR>2{print $2}'
这只是说“如果记录编号(NR
)大于2,那么继续打印
如果您想在<代码> ID <代码>之后删除空白,您可以添加:
neutron subnet-list | awk -F "|" 'NR>2 && NR!=4{print $2}'
这将添加到第一个条件“且记录编号不是4”
您也可以去掉任何空白的
$2
字段以保持简单:
neutron subnet-list | awk -F "|" '$2!=""{print $2}'
使用sed仅打印匹配的LIN(-n选项和末尾的p)。
在行的开头,即
|
之后查找匹配项使用
[^]\{3\}
搜索至少以3个非空格开头的字符串(跳过ip
,但可能与其他中子输出有关)。
添加下一个字符,直到在\(..\)
用
*
用
\1
放回第一个(也是唯一一个)记住的字符串
neutron subnet-list |sed -n 's/^| \([^ ]\{3\}[^ ]*\).*/\1/p'