AWK-打印最后一列以及空值

西瓦

$NF如果我们不知道最后一列的编号,则可以使用文件来打印每行的最后一列。

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

例如,解析who命令

$ 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] : ""}'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWK-打印最后一列;如果最后一个为空,则打印最后一列

来自分类Dev

打印awk中最后一个非空列的值

来自分类Dev

AWK每隔一列打印一次,从最后一列(和最后一列旁边)开始进行N次交互(从右到左打印)

来自分类Dev

AWK脚本无法打印CSV文件的最后一列

来自分类Dev

创建awk程序以添加数据的最后一列

来自分类Dev

awk将最后一列放在新行中

来自分类Dev

修改一列,但全部用awk打印

来自分类Dev

如果使用awk,如何仅在一列中打印

来自分类Dev

使用awk打印多个文件的第一列

来自分类Dev

修改一列但用awk打印所有

来自分类Dev

如果条件为 awk,如何仅打印一列

来自分类Dev

AWK打印最后一行的第二列

来自分类Dev

awk:删除第一列,并在最后一列之后添加四列

来自分类Dev

如何使awk行中打印3个项目,如果为空,则最后一个值为?

来自分类Dev

awk:先打印第一列,然后打印一些值,然后再打印所有其他列

来自分类Dev

使用awk更改文件中第一列的值

来自分类Dev

根据另一列的值使用bash / awk / sed等更改一列的值

来自分类Dev

使用awk根据另一列的值求和一列的值

来自分类Dev

使用AWK打印列

来自分类Dev

AWK打印列

来自分类Dev

将最后一列复制到第一个位置awk

来自分类Dev

如何将csv文件中的最后一列交换为第一列?+ awk

来自分类Dev

awk上输出列的一列

来自分类Dev

awk 按第一列分组

来自分类Dev

如何使用awk打印列并同时仅编辑一列?

来自分类Dev

如何使用awk对每一列求和并打印列名称和列总和?

来自分类Dev

awk 打印存储在数组中的列和前一列

来自分类Dev

搜索字符串并使用awk打印第一行的第一列

来自分类Dev

awk没有在csv的最后一列中进行替换

Related 相关文章

热门标签

归档