lendo sua pergunta eu me lembrei que pelo menos o GNU Sed (provavelmente não o que você tem no Solaris) tem o :
g: Apply the replacement to all matches to the regexp, not just the first.
number: Only replace the numberth match of the regexp.
Note: the posix standard does not specify what should happen when
you mix the g and number modifiers, and currently there is no widely agreed upon meaning across sed implementations. For GNU sed, the interaction is defined to be: ignore matches before the numberth, and then match and replace all matches from the numberth on.
Então, em vez de:
hmontoliu@ulises:/tmp/wb$ echo one two three four five six seven | sed 's/ /;/g5'
one two three four five;six;seven
você pode obter um comando mais conciso para alcançar o que deseja:
hmontoliu@ulises:/tmp/wb$ echo one two three four five six seven | sed -e 's/ /;/g' -e 's/;/ /6g'
one;two;three;four;five;six seven
Diga-nos se a implementação do Solaris tem essa fama.
HTH