Rootop 服务器运维与web架构

awk 不打印某一列的输出

比如一个a文件,内容如下,现在要实现不打印最后一列。

[root@localhost ~]# cat a
a b c

# 通过设置最后一列为空

[root@localhost ~]# cat a | awk '{$NF="";print$0}'
a b 

# $0 是打印所有列  (数字零)

[root@localhost ~]# cat a | awk '{print $0}'
a b c

# 排除多列

[root@localhost ~]# cat a | awk '{$2="";$NF="";print$0}'
a  
[root@localhost ~]# cat a | awk '{$2="";print$0}'
a  c

# 排除多列另一种写法 (等于多次变量赋值)

[root@localhost ~]# cat a | awk '{$2=$NF="";print$0}'
a  

上面可以看到排除的那列变为了一列空列,再用tr(tr是translate缩写)去除空列:

[root@localhost ~]# cat a | awk '{$2="";print$0}'
a  c # 中间有空列
[root@localhost ~]# cat a | awk '{$2="";print$0}' | tr -s ' ' ' '
a c # 排除了空列

tr -s参数意思是如果有多个连续相的同字符就合并为1个。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4470.html

作者:Venus

专注于 服务器运维与web架构 E-mail:venus#rootop.org

评论已关闭。