使用 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
使用此 csvkit :
csvcut -c 2 file.csv | awk 'NR==2'
输出:
2
我想使用 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
使用此 csvkit :
csvcut -c 2 file.csv | awk 'NR==2'
输出:
2