在unix中解析标签分隔的文件头

时间:2015-03-13 06:11:15

标签: unix awk text-parsing

我正在尝试编写一个通用脚本来获取制表符分隔的列值(作为文件的标题)。通过awk分离可以获得列名称。我不知道如何将每个制表符分隔值直到结束或最后一个NF(如果使用awk)。文件中的列数没有修复,有时可能会有20列,有时可能是100,等等。 例如:文件中的制表符分隔列是 -

abc ttr nnc r32 inc ...

如果我写一个简单的awk:

head -1 file | awk 'BEGIN {NF="\t"} {print $1,$2, etc}

它显示每个标签分隔的列,由$ 1,$ 2等表示。我尝试通过$ i替换$ 1,$ 2等增量版本,但不起作用。

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你会问如何将字段从1循环到NF。这是一个这样的循环的例子:

$ head -1 file | awk -F"\t" '{for (i=1;i<=NF;i++)printf "%s ",$i; print"";}'
abc ttr nnc r32 inc