Aug 16, 2011

Strangeness using /usr/xpg4/bin/tr and /usr/bin/tr on Solaris 9


I have a file looking like this,


Wanting to replace each n in this file I use:

tr 'n' ',' < INPUT > OUTPUT

Which works fine. The output is to be expected:



I can’t do any manipulation using sed or awk on this file, none what so ever (the result is always blank, like: sed 's/,/hello/g' displays nothing), in Linux using the GNU package this works fine, but with non GNU not. Can anyone tell me why this is?

Thanks in advance,



# ls
# /usr/xpg4/bin/tr 'n' ',' < testfile.txt
# /usr/xpg4/bin/tr 'n' ',' < testfile.txt | sed 's/,/hello/g'
# ls -l /usr/xpg4/bin/sed
-r-xr-xr-x   1 root     bin        27460 Apr  7  2002 /usr/xpg4/bin/sed
# /usr/xpg4/bin/tr 'n' ',' < testfile.txt | /usr/xpg4/bin/sed 's/,/hello/g'
sed: Missing newline at end of file standard input.
# command -v sed

It seems sed is to blame, not tr … . Using XPG4 sed does seem to fix the problem. As to why exactly, grrrrmmm… .

Edit: actually, when I add a newline to the output of the tr command, it does work with both sed editions, so I suppose /usr/bin/sed really needs a newline, and /usr/xpg4/bin/sed is a little more forgiving on the matter… .

Related posts:

  1. Differences between linux and Solaris /usr/bin/env
  2. Format output from /usr/bin/time to ignore parts of seconds
  3. Can I place my script in /usr/bin?
  4. How do I reset ownership of /usr/bin/sudo on Linux?
  5. why should I chmod 511 /usr/local/apache/bin/httpd?

Leave a comment