[kwlug-disc] wget and variable assignment

William Park opengeometry at yahoo.ca
Thu Jun 3 21:55:23 EDT 2010


On Thu, Jun 03, 2010 at 12:58:15PM -0400, Richard Weait wrote:
> I have a simple screen-scrape to do.
> 
> >From the command line it works fine
> 
> wget -q -O - http://www.openstreetmap.org/stats/data_stats.html| grep
> "<td>Number of users" | sed -e 's/[:a-zA-Z <>/:]//g'
> 
> it returns the plain number
> 
> 262086
> 
> Cool, now to add it to a script
> 
> This works fine
> GETTEE=`wget -q -O -
> http://www.openstreetmap.org/stats/data_stats.html| grep "<td>Number
> of users" | sed -e 's/[:a-zA-Z <>/:]//g'`
> echo "GETTEE = $GETTEE"
> 
> gives:
> GETTEE = 262086
> 
> But.  I want to grab some other data from the same page, so I want to
> wget once, then grep / sed a couple of times.  And I'm breaking it.
> The page appears to have been stripped of its \n and so grepping the
> line I want is failing.
> 
> GETTEE=`wget -q -O - http://www.openstreetmap.org/stats/data_stats.html`
> echo "GETTEE = $GETTEE"
> 
> This returns a mess.
> 
> The quick and dirty is to wget four times for four numbers, but I
> don't want to do that.  How do I assign the wget to a variable and
> keep \n ?

Internal LFs will be preserved.  Only the last LF will be stripped.
Eg.
    $ a=`echo 1; echo 2`
    $ echo ".$a."
    .1
    2.

But, shell variable is not good way to do this.  Save the page to file.

-- 
William




More information about the kwlug-disc_kwlug.org mailing list