[GRASSLIST:4613] Re: String splitting in BASH...

Daniel Victoria daniel.victoria at gmail.com
Fri Oct 22 12:52:48 EDT 2004


I'm not shure I understand what you want but I'd give awk a try.

You could do something like awk {print $1} to get the first column.
You just have to set the delimiter. I think it's -F "|" but not shure.

cheers
Daniel


On Fri, 22 Oct 2004 09:21:31 -0600, Craig Aumann <caumann at ualberta.ca> wrote:
> Using an index certainly speeds this up, but things are still kind of
> slow -
> 80,000 records takes an hour or two.
> 
> A further speed up was acheived by using:
>     echo "update allpoly_att set age = $AGE, cover= $COVER where avicat
> = $MYCAT" | db.execute
> 
> instead of two separate calls for both "age" and "cover".
> 
> What I would like to do is:
> 
> RET = echo "select age, cover from play_att where link_key = $MYCAT" |
> db.select -c`
> 
> where RET will look something like "100|1002".  I then use BASH to
> string split RET and assign to AGE and COVER (both integers).
> This would elliminate one database query and would speed things up
> further.
> 
> But I can't figure out how to do this string-splitting in BASH!!
> 
> Cheers!
> Craig
> 
> On Mon, 2004-10-11 at 02:52, Radim Blazek wrote:
> > On Thursday 07 October 2004 00:03, Craig Aumann wrote:
> > > The code is very simple:
> > >
> > >
> > > for MYCAT in `echo "select distinct avicat from
> allpoly_att"|db.select
> > > -c`;  do
> > >     echo $MYCAT
> > >     AGE=`echo "select age from play_att where link_key = $MYCAT" |
> > > db.select -c`
> > >     COVER=`echo "select cover from play_att where link_key = $MYCAT"
> |
> > > db.select -c`
> > >
> > >     echo "update allpoly_att set age = $AGE where avicat = $MYCAT" |
> > > db.execute
> > >     echo "update allpoly_att set cover = $COVER where avicat =
> $MYCAT" |
> > > db.execute
> > > done
> > >
> > >
> > > Right now, it is doing about 2 updates per second - which is too
> slow!
> > > Is the slowness caused by piping it through db.execute?
> > >
> > > Other suggestions for speeding this up?
> >
> > Postgres + index for link_key and avicat.
> >
> > Radim
> >
> 
>




More information about the grass-user mailing list