On Sun, 27 Aug 2006, Jim Seymour wrote: > Hi, > > I download a csv file from Yahoo in this format: > > ABIAX > 20.63 > 2006-08-3 > ACEIX > 8.78 > 2006-08-3 > CIGAX > 10.08 > 2006-08-3 > FSCTX > 22.25 > 2006-08-3 > GGOAX > 20.55 > 2006-08-3 > HWLAX > 23.3 > 2006-08-3 > HWMAX > 28.74 > 2006-08-3 > MLEIX > 96.37 > 2006-08-3 > NBPBX > 18.98 > 2006-08-3 > PSVIX > 32.43 > 2006-08-3 > PTRAX > 10.3 > 2006-08-3 > RGACX > 30.89 > 2006-08-3 > ^DJI > 11242.6 > 2006-08-3 > ^IXIC > 2092.34 > 2006-08-3 > ^GSPC > 1280.27 > 2006-08-3 > > My table for this data is in this format > > | 2006-08-02 | 20.72 | 8.81 | 10.08 | 22.19 | 20.48 | 23.19 | 28.52 | > 96.21 | 18.87 | 32.14 | 10.31 | 30.95 | 11199.93 | 2078.81 | 1278.55 | > > Is there a way to get mysqlimport to pull the data from specific > column/row to insert into a specified field? Trying to find an easier > way than typing all of the data into a text file for import. > > Thanks, >
Hi Jim, that needs some preprocessing, but 'sed' is your friend. You could use some shell script doing the work for you: #!/bin/sh BLANK=' ' TAB=' ' WHITESPACE="${BLANK}${TAB}" DATE=$(cat mydatafile.csv | sed \ -e "3 !d" \ -e "s/^[$WHITESPACE]*//" \ -e "s/.*/'&'/") DATA=$(cat mydatafile.csv | sed \ -e "/[A-Z]/ d" \ -e "/-/ d" \ -e "s/^[$WHITESPACE]*//" \ -e "s/.*/'&'/" | tr '\012' ',' | sed \ -e "s/,*$//") echo "INSERT INTO mytable VALUES(${DATE},$DATA);" exit 0 # end of shell script The resulting queries can be piped into the mysql client. HTH, Thomas Spahni -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]