迭代重命名列名称

时间:2014-11-14 10:26:06

标签: awk tabular

我有一个表,我想重命名一些标题,表格是这样的:

Names rrdx21 rrdx23 rrdy78 rrdg00 rrdw90 ccv34 vvvbue [...] xxtur44
Values 0       1       2      3     4      5     45   [...]   990
[...]
Values100 2     3      45    76     0      0     0            1000

另一方面,我有一个列表,其中包含我想要更改的标题/列名称以及我想要提供的新名称,如下所示:

rrdx3   sample2
rrdg00  sample23
[...]

你可以想象我想保持标题/列的顺序。可以用awk或简单的脚本来实现吗?

1 个答案:

答案 0 :(得分:1)

假设两个文件都是空格分隔的,请尝试这一行:(我没有测试,但应该去)

awk 'NR==FNR{d[$1]=$2;next}FNR==1{for(i=1;i<=NF;i++)$i=d[$i]?d[$i]:$i}7' header.txt table.txt