Есть два файла: country.csv и president.csv
country.csv имеет два столбца: 1)Название страны; 2) Население
president.csv тоже два столбца: 1)Название страны; 2)Имя ее президента
В качестве разделителя используется точка с запятой.
Надо получить третий файл (или дописать колонку в первый - не суть), где в одной строке будут находиться все три поля: Название страны; Количество населения; Имя президента.
Количество строк в файлах разное, т.е. некоторых стран может не быть как в первом так и во втором файле, т.е. просто отсортировать и затем вслепую присоединить столбец не получится. Необходимо именно по значению первой ячейки первого файла найти строку с этим значением во втором файле и взять значение из второй колонки этой строки.
Пытаюсь сделать это подобным скриптом:
#!/bin/bash
while read LINE; do
C_NAME=$(echo $LINE | cut -d";" -f1)
awk -v country=$C_NAME -v line=$LINE -F";" '$1 == country {print line";"$2}' president.csv >>result.csv
done < country.csv
И получаю сообщение об ошибке:
awk: cmd. line:1: Албания
awk: cmd. line:1: ^ invalid char '�' in expression
Как выйти из ситуации?
P.S. Забыл упомянуть, что оба файла уже в utf-8!