У меня есть CSV-файл, который выглядит следующим образом:
US,China,South Africa
1000,0,129
Вывод, который я ищу:
Value of US = 1000
Value of China = 0
Value of South Africa = 129
Мой CSV-файл был отфильтрован и содержал только одну строку кроме ряда заголовков столбцов. Вышеприведенные операторы повторяются для всех столбцов в файле CSV.
Некоторая дополнительная информация:
Во-первых, имена столбцов и значения в файле CSV разделяются запятыми. Файл был сгенерирован таким образом, и я не изменял разделители.
Во-вторых, все имена моих столбцов являются строками (могут содержать пробелы между ними), в то время как все мои значения являются положительными числами (целыми числами).
Наконец, я также провел перекрестную проверку моего csvfile, и каждый столбец имеет соответствующее значение (т. Е. Нулевые значения).
До сих пор я пробовал следующее:
csvcut -n filename.csv #To try and get the column names to iterate through them
Однако вышеприведенная команда возвращает вывод, например:
1: US
2: China
3: South Africa
Отдельно, учитывая имя столбца в качестве входных данных для моего сценария оболочки, я написал
echo "Value of $1 = `csvcut -c $1 filename.csv`"
При запуске как sh my_script.sh US
,
Я получаю вывод
Value of US = 1000
Я просто не могу понять, как это сделать во всех столбцах.
Редактировать
Поскольку вопрос был закрыт, правильное решение найдено в комментариях.
Благодарим Эд Мортона.
Другим, кто сталкивается с этим проблема, решение, как показано ниже:
awk -F, 'NR==1{split($0,h);next} {for (i=1;i<=NF;i++) print "Value of", h[i], "=", $i}' file