我正在尝试匹配我正在使用的CSV文件中的标题,然后打印整个列。
some.file:
col_1,col_2,col_3,col_4,col_5
2333,4345,365678,54356,34443
代码:
awk -F, 'NR==1{for(i=1;i<=NF;i++){if($i=="col_3")x=i;}} NR>1{if($x=="1")print;}' some.file
但是当我运行这个时,我得到一个空白的回报...
答案 0 :(得分:2)
您可以使用此awk
:
awk -F',' -v search="col_3" 'NR==1{for(i=1;i<=NF;i++){ if ($i == search) c=i } } c{print $c}' file
输出:
col_3
365678
您可以使用awk
变量将所需的列名称传递给search
。
从你的例子:
awk -F, 'NR==1{for(i=1;i<=NF;i++){if($i=="col_3")x=i;}} x!=0{print $x}' file