[英]PSQL COPY from ShellScript
我正在编写一个Shell脚本,该脚本从AWS S3提取数据(.csv文件),将其本地下载到EC2 Linux AMI实例,然后将数据复制到RDS PostGresql数据库。
我的Shell代码如下:
FILE="$(ls DB)"
PARAMETERFORDB= "'\\COPY table(x,y) FROM ''$FILE'' CSV HEADER'"
$(psql --host=XXXXX --port=XXXXX --username=XXXXX --password --dbname=XXXXX -c ${PARAMETERFORDB})
因此,从S3下载数据时,我将文件名存储在FILE变量中(这是文件夹中的唯一文件,在数据库查询后该文件夹将被删除)。
我收到以下错误消息:
./shellTest.sh: line 21: '\COPY table(x,y) FROM ''14.9.2016.csv'' CSV HEADER': command not found
psql: option requires an argument -- 'c'
Try "psql --help" for more information.
我究竟做错了什么?
在行中
PARAMETERFORDB= "'\\COPY table(x,y) FROM ''$FILE'' CSV HEADER'"
删除=
后面的空格并删除单引号的一级:
PARAMETERFORDB="\\COPY table(x,y) FROM '$FILE' CSV HEADER"
在调用psql
的行中,将${PARAMETERFORDB}
用双引号引起来,因为它包含空格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.