来源:https://github.com/pavanchhatpar/csv-to-sql-converter
注意:
1、csv的行首建议用英文的,这样可以确保脚本生成的sql文件的列也是英文的。
2、csv中如果有特殊字符(例如换行) 会导致行错乱。
#!/bin/bash
set -euo pipefail
fname="$1"
# 先转一下编码,防止出现乱码的情况
iconv -f GBK -t UTF-8 ${fname} -o ${fname}.utf8
sed 's/\s*,*\s*$//g' "$fname".utf8 > tmp.csv
op=$(echo "$fname".utf8 | cut -d"." -f 1)
opfile="$op.sql"
op="\`$op\`"
columns=$(head --lines=1 tmp.csv | sed 's/,/`,`/g' | tr -d "\r\n")
columns="\`$columns\`"
tail --lines=+2 tmp.csv | while read l ; do
values=$(echo $l | sed 's/,/\",\"/g' | tr -d "\r\n")
values="\"$values\""
echo "INSERT INTO $op ($columns) VALUES ($values);"
done > "$opfile"
rm -f tmp.csv
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。