linux输出最后一列数据库,linux – AWK – 打印最后一列以及空值

如果我们不知道最后一个列号,我们可以使用$NF打印文件中每行的最后一列.

但是我面临的困难是最后一列有空值.

例如,解析谁命令

$who

root tty1 2018-01-25 09:36

root pts/0 2018-05-30 07:39 (192.168.1.134)

root pts/1 2018-05-28 23:12 (192.168.1.134)

root pts/2 2018-06-01 10:01 (192.168.1.188)

获得结果:

$who | awk '{print $NF}'

09:36

(192.168.1.134)

(192.168.1.134)

(192.168.1.188)

预期结果

(192.168.1.134)

(192.168.1.134)

(192.168.1.188)

让我知道在单行中获得预期结果的可能性.

编辑1:以上场景只是一个例子.我不喜欢更改分隔符来实现结果.

编辑2:字段数少于最大值的行没有(空行输出)

解决方法:

要仅输出具有最大列数的行的最后一列,您可以执行以下操作:

who | awk '

NF > max {max = NF; output = ""}

NF == max {output = output $NF ORS}

END {printf "%s", output}'

为每行输入输出一行,但对于没有最大列数的行输出空白:

who | awk '

NF > max {max = NF}

{n[NR] = NF}

NF == max {last[NR] = $NF}

END {for (i = 1; i <= NR; i++) print n[i] == max ? last[i] : ""}'

标签:linux,awk,shell-script

来源: https://codeday.me/bug/20190816/1663233.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值