Bài viết hôm nay mình sẽ hướng dẫn bạn cập nhật một table database từ file CSV sang SQL trên Linux với một script đơn giản sau.
touch csv-to-sql.sh && chmod +x csv-to-sql.sh && vi csv-to-sql.sh
Sau đó bạn nhấn phím i hoặc Insert và thêm vào đoạn mã bên dưới sau đó lưu lại file
fname=$1 sed 's/\s*,*\s*$//g' $fname > tmp.csv op=$(echo $fname | 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 tmp.csv
- Sau đó bạn sẽ chạy script trên và gọi đến file
sh csv-sql.sh <filename>.csv
File CSV ban đầu
File CSV to SQL sau khi đã được chuyển
Bài viết hữu ích, mình đã test thành công, bạn có hướng dẫn import database bằng lệnh thì cho mình xin với.