It should be. I checked the Gnu sed docs online, and they also say
that you must use \ + real newline in the replacement string. I
wonder why \n works for other platforms?
On Sep 18, 2007, at 10:04 AM, Michael Barton wrote:
William,
I'm very glad you've identified the problem. But I worry whether this
solution is portable across platforms.
Michael
On 9/18/07 6:47 AM, "William Kyngesburye" <[EMAIL PROTECTED]>
wrote:
Same happens for me (OSX). I walked thru the script commands
manually, and it is indeed messing up on the first sed.
I see this in the sed man for Sed Regex info (OSX uses the BSD sed):
2. The escape sequence \n matches a newline character embedded
in the
pattern space. You can't, however, use a literal newline
character
in an address or in the substitute command.
Later, for the s/ function, it says:
A line can be split by substituting a newline character into it.
To specify a newline character in the replacement string, precede
it with a backslash.
Putting a real newline after the \ does the trick:
g.list type=$type mapset=$mapset \
| grep -v '^-\+$' \
| grep -v "files available" \
| grep -vi "mapset" \
| sed 's/ */\
/g' \
| grep -v '^$' \
| grep "$search" \
| sort \
| sed -e "s/$/$MAPSET/"
-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/
All generalizations are dangerous, even this one.
_______________________________________________
grass-dev mailing list
[email protected]
http://grass.itc.it/mailman/listinfo/grass-dev