Предположим, что у меня есть CSV-файл с заголовками следующего вида:Подобрав полей CSV по имени, используя AWK
Field1,Field2
3,262000
4,449000
5,650000
6,853000
7,1061000
8,1263000
9,1473000
10,1683000
11,1893000
Я хотел бы написать сценарий AWK, который отвезет разделенный запятыми список поля имена target
, разделите его на массив, а затем выберите только те столбцы с именами, которые я указываю.
Это то, что я пытался до сих пор, и я проверил, что 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 цель = FIELD1 -f GetCol.awk Debug.csv
Я ничего не получить распечатанный.
+1 для выяснения себя! Я добавил полный сценарий для работы, вы можете найти некоторые из них полезными. –