28 lines
597 B
Bash
Executable File
28 lines
597 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# Convert cities CSV file to SQL
|
|
|
|
if [ -z "$1" ]
|
|
then
|
|
echo "File required as first arg"
|
|
exit 1
|
|
fi
|
|
|
|
# \x27 is a single quote
|
|
# \x60 is back tick
|
|
awk '
|
|
BEGIN {
|
|
FS=","
|
|
format = "INSERT INTO cities(country_code, city, name, region, latitude, longitude) VALUES(\x27%s\x27, \x27%s\x27, \x27%s\x27, \x27%s\x27, %s, %s);\n"
|
|
getline
|
|
}
|
|
{
|
|
gsub(/\x27/, "\x60", $2)
|
|
gsub(/\x27/, "\x60", $3)
|
|
gsub(/\x27/, "\x60", $4)
|
|
if(NF == 6) printf format, $1, $2, $3, $4, $5, $6
|
|
else printf format, $1, $2, $3, $4, $6, $7
|
|
}
|
|
' $1
|
|
|