使用 bash 从逗号分隔的文件中提取基于列 header 的值

Extract value based on column header from Comma separated file using bash

我想使用 bash 从 csv 中提取特定列名称的第一个值。例如,我想提取列“bb”的第一个值。列可以是任意顺序

aa,bb,cc
1,2,3
4,5,6

输出应该是2

Awk 解法:

awk -F',' 'NR == 1{ for(i=1; i<=NF; i++) if ($i == "bb") { pos = i; break } }
           NR == 2{ print $pos; exit }' file.csv

输出:

2

使用此 :

csvcut -c 2 file.csv | awk 'NR==2'

输出:

2