json - Bash循环通过CSV但用换行符留下最后一行值
问题描述
我有循环的情况。我的任务是从 csv 数据创建带有循环的 json 文件。不幸的是,当我生成字段 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 文件。但我仍然不知道如何处理它。
解决方案
关于我给出的评论,以下脚本正在运行
#!/bin/bash
cd /home/test
CSV_LIST="/home/test/tableList.csv"
DATA=${CSV_LIST}
# Prepare data file
sed -i "s/\r//g" ${DATA}
# Added for debugging purpose
echo "Creating connection file in JSON for"
# Print file content from 2nd line only
tail --lines=+2 ${DATA} |
while IFS=',' read TABLE PK ; do
# Added for debugging purpose
echo "Table: ${TABLE} and PK: ${PK}"
# Added missing $()
PK_TRIMMED=$(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_TRIMMED}","pk.mode":"record_value","destination.table.format":"db.dbo.${TABLE}","errors.tolerance":"all","flush.size":"10000"}}
EOF
done
推荐阅读
- python - Docker 容器网络:Redis 和自定义镜像
- python - 用于从图像中获取文本的 OCR
- aspnetboilerplate - 如何在 AbpBoilerPlate 中配置我的 IErrorInfoBuilder 的注入
- pandas - 在没有循环的情况下按行计算 pandas 中的余弦相似度
- wpf - MaterialDesignInXaml TextBox 和其他 UI 元素在禁用时不可读
- javascript - 不同的html画布坐标
- java - “读者”永远不会关闭......如何解决这个问题?
- java - docx4j 创建编号和未编号列表
- symfony - Get initial value of entity in FormExtension
- java - Springboot SessionListener 函数(sessionCreated(), sessionDestroyed()) 未调用