我有一个包含多个由制表符分隔的字段的文件。 我想要打印除第一列之外的所有列,但希望将它们全部打印在 一个 列中,使用 AWK。 文件的格式为
col 1 col 2 ... col n
每行至少有两列。
示例
2012029754 901749095
2012028240 901744459 258789
2012024782 901735922
2012026032 901738573 257784
2012027260 901742004
2003062290 901738925 257813 257822
2012026806 901741040
2012024252 901733947 257493
2012024365 901733700
2012030848 901751693 260720 260956 264843 264844
我想告诉awk打印第2到第n列,其中n大于2,并且在该行的第n列没有信息时不打印空行,在一个列中像以下内容一样。
901749095
901744459
258789
901735922
901738573
257784
901742004
901738925
257813
257822
901741040
901733947
257493
901733700
901751693
260720
260956
264843
264844
这是我第一次使用awk,所以请耐心等待。我从命令行编写了以下代码,它可以正常工作:
awk '{i=2;
while ($i ~ /[0-9]+/)
{
printf "%s\n", $i
i++
}
}' bth.data
这更像是寻求认可而不是询问是否在AWK中以这种方式进行操作,或者是否有更好/更短的方法。
请注意,实际输入文件可能有数百万行。
谢谢。
cut -f 2- bth.data
不是你想要的吗? - Neil