Awk:打印未确定数量的列

Awk:打印未确定数量的列,第1张

概述我有一个文件,其中包含由制表符分隔的许多字段.我正在尝试打印除第一列之外的所有列,但是想要使用AWK仅在一列中打印它们.文件的格式是 col 1 col 2 ... col n 一行中至少有两列. 样品 2012029754 9017490952012028240 901744459 2587892012024782 901735922201 我有一个文件,其中包含由制表符分隔的许多字段.我正在尝试打印除第一列之外的所有列,但是想要使用AWK仅在一列中打印它们.文件的格式是

col 1   col 2   ... col n

一行中至少有两列.

样品

2012029754      9017490952012028240      901744459       2587892012024782      9017359222012026032      901738573       2577842012027260      9017420042003062290      901738925       257813  2578222012026806      9017410402012024252      901733947       2574932012024365      9017337002012030848      901751693       260720  260956  264843  264844

因此,我想告诉awk将列2打印到n列大于2的n而不打印空白行,如果该行的列n中没有信息,则全部在一列中,如下所示.

901749095901744459258789901735922901738573257784901742004901738925257813257822901741040901733947257493901733700901751693260720260956264843264844

这是我第一次使用awk,所以请耐心等待.我从命令行写了这个:

awk '{i=2; while ($i ~ /[0-9]+/){     printf "%s\n",$i    i++}}' bth.data

这更像是一个寻求批准,而不是问一个问题,这是在AWK中做这样的事情的正确方法,还是有更好/更短的方式.

请注意,实际输入文件可能是数百万行.

谢谢

解决方法 这是你想要的输出吗?

awk '{for(i=2; i<=NF; i++) print $i}' bth.data

901749095901744459258789901735922901738573257784901742004901738925257813257822901741040901733947257493901733700901751693260720260956264843264844

NF是几个pre-defined awk variables中的一个.它表示给定输入行上的字段数.例如,如果要始终打印行打印$NF中的最后一个字段,则非常有用.或者当然,如果您想迭代给定行上的全部或部分字段到行尾.

总结

以上是内存溢出为你收集整理的Awk:打印未确定数量的列全部内容,希望文章能够帮你解决Awk:打印未确定数量的列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1032079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存