经常遇到执行一些命令的输出会把标题也带上,有时候只想要输出内容中记录的某些字段,可以使用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命令也可删除标题行,如
# nova list|sed -e '1,3d'</

在处理命令输出时,有时需要排除标题行并提取特定字段的内容。本文通过示例展示了如何使用awk命令过滤掉第3行之前的标题行,并在字段非空的情况下打印第2列的内容。同时提到了使用sed命令删除标题行的方法。
最低0.47元/天 解锁文章
1873

被折叠的 条评论
为什么被折叠?



