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

时间:2018-04-06 12:55:56

标签: linux csv text-processing

我想使用bash从csv中提取特定列名的第一个值。例如,我想提取列#34; bb"的第一个值。列可以按任何顺序

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

输出应为2

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用

使用此功能
csvcut -c 2 file.csv | awk 'NR==2'

输出:

2