次の形式のヘッダーを持つ CSV ファイルがあるとします。
Field1,Field2
3,262000
4,449000
5,650000
6,853000
7,1061000
8,1263000
9,1473000
10,1683000
11,1893000
コンマ区切りのフィールド名のリストを取り、target
それを配列に分割し、指定した名前の列のみを選択する awk スクリプトを作成したいと思います。
これは私がこれまでに試したことであり、head
配列に目的のヘッダーが含まれていること、およびtargets
配列に特定のコマンドラインによって渡された目的のターゲットが含まれていることを確認しました。
BEGIN{
FS=","
split(target, targets, ",")
}
NR==1 {
for (i = 1; i <= NF; i++) head[i] = $i
}
NR !=1{
for (i = 1; i <= NF; i++) {
if (head[i] in targets){
print $i
}
}
}
コマンドでこのスクリプトを呼び出すと
awk -v target=Field1 -f GetCol.awk Debug.csv
何も印刷されません。