Sample Header Ad - 728x90

Nexenta bash script uses /usr/sun/bin/sed instead of /usr/bin/sed

3 votes
3 answers
1093 views
I'm using a script for Linux and for Solaris (Nexenta). This line works on Linux, but not on solaris (but when run from shell it works): cat "pg_hba.conf" | sed "0,/^local/{s/md5/trust/}" The error message is: sed: command garbled: 0,/^local/{s/md5/trust/} After some research, I found out that the sed that bash uses in the script is different. from shell: /usr/bin/sed from script: /usr/sun/bin/sed I want to make the script use /usr/bin/sed. What I tried to do: 1. call sed with full path. Same results. It seems that it is still uses the other sed... 2. tried to call it via bash -l. Same results. 3. tried to declare a different command: S=/usr/lib/sed and use $S instead. Same results. 4. checked PATH - both cmd and script have /usr/bin in it. 5. Tried replacing the double quotes to single. Same results. 6. tried running the sed with -r flag. Output is : `# /usr/xpg4/bin/sed -r /usr/xpg4/bin/sed: illegal option -- r Usage: sed [-n] script [file...] sed [-n] [-e script]...[-f script_file]...[file...]` HELP?? What I need to do is to replace the first match of "md5" with "trust" on the first line that starts with "local"). I know I can do it otherwise but I the sed issue is itching me too much! # EDIT: I hope this makes a little order... 1. PATH from login shell = /usr/local/ctera/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/ctera/apache-ant-1.8.2/bin 2. PATH from script = /usr/sbin:/usr/bin:/usr/local/ctera/apache-ant-1.8.2/bin:/usr/local/ctera/apache-ant-1.8.2/bin 3. PATH from script when PATH=$(command -p getconf PATH):$PATH is called = /usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin:/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin:/usr/sbin:/usr/bin:/usr/local/ctera/apache-ant-1.8.2/bin:/usr/local/ctera/apache-ant-1.8.2/bin 4. truss -f sed from login shell calls /usr/bin/sed 5. truss -f sed from script calls /usr/sun/bin/sed 6. truss -f /usr/bin/sed from script calls /usr/sun/bin/sed !!! 7. After setting PATH=$(command -p getconf PATH):$PATH: 7.1 truss -f sed from script calls /usr/xpg4/bin/sed 7.2 truss -f /usr/bin/sed from script calls /usr/sun/bin/sed !!! #MORE INFO: Commands output: (run both from shell prompt and from within the script) 1. truss -ft execve /usr/bin/sed q as shell command: 8604: execve("/usr/bin/sed", 0x08047D20, 0x08047D2C) argc = 2 from script: 8545: execve("/usr/sun/bin/sed", 0x08047768, 0x08047774) argc = 2 2. file /usr/bin/sed as shell command: /usr/bin/sed: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped from script: `file: /usr/bin/sed zero size or zero entry ELF section - ELF capabilities ignored file: /usr/bin/sed: can't read ELF header /usr/bin/sed: data` 3. ls -l /usr/bin/sed as shell command: -rwxr-xr-x 1 root root 96440 May 31 2008 /usr/bin/sed from script: -rwxr-xr-x 1 root root 96440 May 31 2008 /usr/bin/sed 4. ls -ld $(type -pa sed) as shell command: `-rwxr-xr-x 1 root root 96440 May 31 2008 /bin/sed -rwxr-xr-x 1 root root 96440 May 31 2008 /usr/bin/sed` from script: -rwxr-xr-x 1 root root 96440 May 31 2008 /usr/bin/sed 5. md5sum $(type -pa sed) as shell command: `385361c5111226c8eac8e25b53fed29c /bin/sed 385361c5111226c8eac8e25b53fed29c /usr/bin/sed` from script: 385361c5111226c8eac8e25b53fed29c /usr/bin/sed * The script is invoced by JAVA code. * uname -a SunOS cteraportal 5.11 NexentaOS_134f i86pc i386 i86pc Solaris * This might add info about the sed version on my machine ~# ll find / -name sed -rwxr-xr-x 1 root root 96440 May 31 2008 /usr/bin/sed -r-xr-xr-x 1 root bin 35656 Sep 7 2010 /usr/sun/bin/sed -r-xr-xr-x 1 root bin 32104 Sep 7 2010 /usr/ucb/sed -r-xr-xr-x 1 root bin 35636 Sep 7 2010 /usr/xpg4/bin/sed /usr/share/doc/sed: total 113 -rw-r--r-- 1 root root 168 Jun 21 2005 AUTHORS.gz -rw-r--r-- 1 root root 2507 Jun 21 2005 BUGS.gz -rw-r--r-- 1 root root 6584 Feb 3 2006 NEWS.gz -rw-r--r-- 1 root root 285 Jun 21 2005 README.gz -rw-r--r-- 1 root root 1071 Jan 12 2006 THANKS.gz -rw-r--r-- 1 root root 4806 May 31 2008 changelog.Debian.gz -rw-r--r-- 1 root root 32312 Feb 3 2006 changelog.gz -rw-r--r-- 1 root root 796 May 31 2008 copyright drwxr-xr-x 2 root root 3 May 30 2011 examples drwxr-xr-x 2 root root 3 May 30 2011 sed-4.1.5 -rw-r--r-- 1 root root 56538 May 31 2008 sedfaq.txt.gz
Asked by csny (1585 rep)
Aug 18, 2014, 03:47 PM
Last activity: Aug 21, 2014, 12:03 PM