【发布时间】:2015-03-13 06:11:15
【问题描述】:
我正在尝试制定一个通用脚本来获取制表符分隔的列值(作为文件的标题)。通过 awk 分离对于获取列名是很好的。我不知道如何获取每个制表符分隔的值,直到最后或最后一个 NF(如果使用 awk)。文件中的列数不固定,有时它可能会出现 20 列,有时可能是 100 列,等等。 例如:文件中的制表符分隔列是-
abc ttr nnc r32 inc ...
如果我写一个简单的 awk 为:
head -1 file | awk 'BEGIN {NF="\t"} {print $1,$2, etc}
它会显示由 $1、$2 等表示的每个制表符分隔的列。我尝试了一个增量版本,将 $1、$2 等替换为 $i,但不起作用。
对此有何想法?
【问题讨论】:
-
你想达到什么目的?你试过
awk 'BEGIN {NF="\t"} {for(i=1;i<=NF;i++)print $i} -
感谢 Avinash 的回复,我已经尝试过了,但没有给出适当的结果。有些列也像“电话号码”一样用空格分隔,在这种情况下,它也不应该将这两个分开,因为我的 NF 已经是“\t”,但它正在这样做。
标签: unix awk text-parsing