繁体   English   中英

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

[英]print the value of last not null column in awk

我有一个如下所示的文件,想在 awk 中打印最后一个非空列的值。

输入

a|||||||
a|b|d|||||
c|d|e|f||||
f|e||||||
f|e|g|||||

输出:

a
d
f
e
g

你可以使用这个awk

awk -F '|' '{sub(/[|]+$/, ""); print $NF}' file

细节:

  • sub(/[|]+$/, "")函数去掉所有空| s 行结束前
  • print $NF打印最后一个非空字段

a
d
f
e
g

我得到了解决方案

awk -F'|' '{ for (i = NF; i > 0 ; i--) if($i!="") {print $i; break;} }' <file name>

有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM