Answers:
awk '
NR==1 {
for (i=1; i<=NF; i++) {
f[$i] = i
}
}
{ print $(f["foo"]), $(f["baz"]) }
' file
foo baz
1 alpha
2 beta
3 gamma
这是一个非常有用的习语。我在电子表格中有很多数据,不同的电子表格可能会有我感兴趣的列的子集,但不一定在所有电子表格中的列顺序相同,或者在它们之间/之前的其他列数相同,因此能够导出将它们转换为CSV或类似格式,然后仅使用列名而不是列号运行awk脚本是绝对无价的。
print i
and print $i
和print
f [$ i]`语句等,以跟踪发生的情况(如果有帮助的话)。