基于标题匹配打印整列

时间:2017-08-08 10:28:22

标签: regex unix awk sed grep

我正在尝试匹配我正在使用的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

但是当我运行这个时,我得到一个空白的回报...

1 个答案:

答案 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