[Westwales] Data Base Files

Robert Savage bobsavage at uklinux.net
Sun Oct 3 07:51:05 BST 2004


On Saturday 02 Oct 2004 14:46, Colin Sauze wrote:

> If you wanted to import it into MySQL you could use a shell script  and
> do something like:
>
> #!/bin/sh
>
>
> if [ "$#" != "1" ] ; then
>     echo "usage: convert.sh filename"
>     echo "   filename is the name of the file to convert"
>     exit 1
> fi
>
> #setup the database
>
> #create the database
> echo "create database mydata;" > schema
> #tell mysql to use it
> echo "use mydata;" >> schema
> #create the table
> echo "create table Products (PRODUCT_ID int,DESCRIPTION varchar(255));"
>
>  >> schema
>
> #setup primary key
> echo "create INDEX PRODUCT_ID ON PRODUCTS;" >> schema
>
>
> #get number of lines in input file, wc -l returns number of lines,
> followed by a space and then filename
> #use awk to only get the number of lines
> NUM_OF_LINES=`wc -l $1 | awk '{print $1}' `
>
> #loop round processing each line one by one
> for i in `seq 1 $NUM_OF_LINES` ; do
>        #get all lines up until this line, and then just get the last one
> of those
>        LINE=`head -$i $1 | tail -1`
>        #assuming product number is first field and description is second
>        #this only works if description has no spaces in it
>        PRODUCT_NUM=`echo $LINE | awk '{print $1}'`
>        DESCRIPTION=`echo $LINE | awk '{print $2}'`
>        #write out our SQL commands into a file
>        echo "insert into Products
> values($PRODUCT_NUM,\"$DESCRIPTION\");" >> schema
> done
>
> #execute mysql with resulting commands
> mysql -uroot -ppassword < schema
>
>
>
> this will create now mean you can access your data from mysql.
> The same technique could be used to make a CSV file.

Thank you for that Colin,  I am finding it rather fascinating to play with,  
all part of this very steep learning curve.

Cheers
Bob



More information about the Westwales mailing list