2017-08-08 12 views
0

私は作業している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 

私はしかし、これを実行すると、私は空白のリターンを得る...

答えて

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 

あなたはsearch変数を使用してawkに必要な列名を渡すことができます。あなたの例から

awk -F, 'NR==1{for(i=1;i<=NF;i++){if($i=="col_3")x=i;}} x!=0{print $x}' file 
関連する問題