经常遇到执行一些命令的输出会把标题也带上,有时候只想要输出内容中记录的某些字段,可以使用awk命令把指定的行过滤掉,输出需要行的某些字段。
# nova host-list
+-------------+-------------+----------+
| host_name | service | zone |
+-------------+-------------+----------+
| lcontroller | scheduler | internal |
| lcontroller | conductor | internal |
| lcontroller | consoleauth | internal |
| lcontroller | cert | internal |
| compute1 | compute | nova |
| compute2 | compute | nova |
| lcontroller | compute | nova |
+-------------+-------------+----------+
通过判断函数大于3,字段非空,输出需要的非空字段值。
# nova host-list| awk '{if(NR>3 && $2 != "") {print $2}}'|sort -u
输出如下:
compute1
compute2
lcontroller
另外,通过sed命令也可删除标题行,如
# no