turns out we were not using IFS properly. the real solution was to flip the spaces into EOLs so that uniq and other things would work on multiple lines. we believe this, at this point, at least.
# when passed a list of things, this will return the unique items from that list as an echo.
function uniquify()
{
# when passed a list of things, this will return the unique items from that list as an echo.
function uniquify()
{
- # change the eol character so things are easier.
-echo "list before uniquify: $*" >~/uniquify.out
- HOLDIFS="$IFS"
- IFS=' '
+## # change the eol character so things are easier.
+
+sep >>~/uniquify.out
+echo "$(date): list before uniquify: $*" >>~/uniquify.out
+
+## HOLDIFS="$IFS"
+## IFS=' '
+
- local chewed="$(echo $* | sort | uniq)"
+ local chewed="$(echo $* | tr ' ' '\n' | sort | uniq)"
-echo "list after uniquify: $chewed" >~/uniquify.out
- # return the former eol characters to their place.
- IFS="$HOLDIFS"
+echo "$(date): list after uniquify: $chewed" >>~/uniquify.out
+
+## # return the former eol characters to their place.
+## IFS="$HOLDIFS"
}
# sets the variable in parameter 1 to the value in parameter 2, but only if
}
# sets the variable in parameter 1 to the value in parameter 2, but only if