在 unix 中解析文件的制表符分隔 header

parsing tab separated header of a file in unix

我正在尝试制定一个通用脚本来获取制表符分隔的列值(作为文件的 header)。通过 awk 分隔可以很好地获取列名。我不知道如何让每个制表符分隔值直到结束或最后一个 NF(如果使用 awk)。文件中的列数不固定,有时可能会出现 20 列,有时可能是 100 列,等等。 例如:文件中制表符分隔的列是-

abc ttr nnc r32 inc ...

如果我将一个简单的 awk 写成:

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

它会显示每个制表符分隔的列,分别由 $1、$2 等表示。我尝试了一个增量版本,将 $1、$2 等替换为 $i,但行不通。

对此有什么想法吗?

如果我没理解错的话,你问的是如何遍历从 1 到 NF 的字段。下面是这样一个循环的例子:

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