У меня есть дело с l oop. Моя задача - создать файл json с l oop из данных CSV. К сожалению, когда я генерирую поле pk, значение пустое, что делает мою json ошибку. Это подмножество моего csv
table,pk
aaa,nik
aab,ida
aac,idb
aad,idc
aae,idd
aef,ide
...
Это мой полный код:
#!bin/bash
CSV_LIST="/home/admin/kafka/main/config/tables/table_lists.csv"
DATA=${CSV_LIST}
mkdir sqlconn
cd sqlconn
cat ${DATA} |
while IFS=',' read table pk ; do
PK= echo ${pk} | tr -d '\n'
cat > ./sqlservercon_$table.json << EOF
{"name" :"sqlservercon_$table","config":{"connector.class":"io.confluent.connect.jdbc.JdbcSinkConnector","topics":"$table",
...
,"pk.fields":" $PK","pk.mode":"record_value","destination.table.format":"db.dbo.$table","errors.tolerance":"all","flush.size":"10000"
}}
EOF
done
Таким образом, результат рендеринга дает мне это:
{"name" :"sqlservercon_XXX","config":{"connector.class":"io.confluent.connect.jdbc.JdbcSinkConnector","topics":"XXX",...
,"pk.fields":" ","pk.mode":"record_value","destination.table.format":"db.dbo.XXX","errors.tolerance":"all","flush.size":"10000"
}}
, но когда я не редактировал свое поле pk
...,
"pk.fields":" $pk",
...
, это дает мне неправильный JSON файл, подобный этому:
...,"pk.fields":" id
",...
Любая помощь приветствуется
ОБНОВЛЕНИЕ
Когда я проверяю свой CSV, используя cat -v table_lists.csv
, последний столбец имеет символ ^ M, который разрушает json файл. Но я до сих пор не знаю, как с этим справиться.