sed command not working inside ksh script but works fine outside


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed command not working inside ksh script but works fine outside
# 1  
Old 10-05-2013
sed command not working inside ksh script but works fine outside

Hi,

I am a bit confused ,why would a sed command work fine outside of ksh script but not inside.

e.g

I want to replace all the characters which end with a value and have space at end of it.
so my command for it is :
Code:
sed -i "s/$SEPARATOR /$SEPARATOR/g" file_name

This is working fine in and outside of the ksh script.

Another e.g
Code:
sed -i "s/$SEPARATOR$//g" file_name

I want to remove last character from every line in the file.So the above command works fine outside of ksh script but not inside.
Also,

I am trying to execute below command to remove all Acaret junk characters.
Code:
sed -i "s/Â//g" file_name

This too works fine outside of ksh script but not inside.

Could somebody please help me explain why is it so and what can I do to resolve this.Also,what difference is it if I use double quotes in sed instead of single quotes.

Please help.Smilie
# 2  
Old 10-05-2013
I can't see a reason why those sed commands should not work within scripts. Is the SEPARATOR variable assigned to correctly? Execute the scripts with the -x option set, and post the log as well as input and output files (drop the -i for this).
This User Gave Thanks to RudiC For This Post:
# 3  
Old 10-05-2013
Hi,

Thanks for the suggestion I checked with the -x flag and found that the value is not resolved for $SEPARATOR.
Still I am facing issues with the caret A £ symbol from the string.I am trying to remove it from the file completely so using the below command:

Code:
sed -i "s/Â//g" file_name

But it does not make any changes to the file and the £ is still seen.
But this above command when submitted from outside the script works.
Any way to remove this from the file ?
# 4  
Old 10-05-2013
Hi,
For the first command sed that not work in ksh script, try as:
Code:
sed -i "s/${SEPARATOR}\$//g" file_name

But, maybe not work again, what is $SEPARATOR ?

How to launch your ksh script ?

For information, accented character may not be in sed. these depend your locale.

EDIT: try as:
1- how to find octal value of character:
In my example, my text in File is FOOàBAR.
Code:
$ cat File
FOOàBAR
$ sed -n 'l160' file
FOO\303\240BAR$

Here, I see that character "à" is in octal \303\240 but really value is \0303\0240.
And to replace "à" by nothing:
Code:
$ sed  $(echo -e 's/\0303\0240//g') File
FOOBAR

Regards.

Last edited by disedorgue; 10-05-2013 at 05:09 PM.. Reason: First problem is already fix and correct my response for second problem
# 5  
Old 10-06-2013
@disedorgue: That's not quite right. Â is a two (or more) byte unicode character; sed will find it and replace it (at least my GNU sed version 4.2.1 does).
@vital_parsley: As long as you don't post the info requested, I'll be incapable to help.
# 6  
Old 10-06-2013
Thanks guys for all the help.I followed your responses and found that my first mistake was the $SEPARATOR variable was out of scope of the block so was not resolving correctly.
Secondly the caret A was not getting removed from the file is because ..when the job ran the wrapper script changed the LANG variable and so the caret A was not getting removed.I have explicitly exported it in the script and now its fine.

Thanks guys for all the help!
# 7  
Old 10-06-2013
@RudiC:Yes and No, sed will found in locale use.
If I use charmap ISO-8859-1:
Code:
$ echo "Â" | sed -n 'l'
\302$

If I use charmap UTF-8:
Code:
$ echo "Â" | sed -n 'l'
\303\202$

And therefore sed might not found character in file because it is not the same character set.

Regards.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

2. UNIX for Dummies Questions & Answers

Shell script not working but command works in command prompt

Hi everyone I have a problem with my script If I try directly this command /usr/bin/nice -n 19 mysqldump -u root --password="******" wiki_schneider -c | nice -n 19 gzip -9 > /point_de_montage/$(date '+%Y%m%d')-wiki-db.sql.gz It works But if I simply add this command in a script and... (8 Replies)
Discussion started by: picemma
8 Replies

3. Shell Programming and Scripting

Getting Command not found error Even though Script is working fine

Hi friends, I am using below script to do some work. But even though script is working fine but while executing it i am getting command not found error. :( Here is the script :- #!/bin/sh Names="name.txt" ###main##### for LINE in `cat ${Names}` do ... (3 Replies)
Discussion started by: harpal singh
3 Replies

4. Shell Programming and Scripting

Not the correct output, works fine via CLI, not inside the script.

Guys, I need you help please. The script below is not working correclty for checking via a awk/if statement . Can you tell me what i am doing wrong in the script code "if($1 == "$RETENTION_LEVEL") " Syntax RETENTION_LEVEL=`echo $LINE | cut -f2 -d" "` echo " ==============... (4 Replies)
Discussion started by: Junes
4 Replies

5. Shell Programming and Scripting

Sed script not working properly on Solaris (works fine on AIX)?

Hi, I have a problem with a SED script that works fine on AIX but does not work properly on a Solaris system. The ksh script executes the SED and puts the output in HTML in tables. But the layout of the output in HTML is not shown correctly(no tables, no color). Can anyone tell if there is... (7 Replies)
Discussion started by: Faith111
7 Replies

6. Shell Programming and Scripting

help with shell script: cp command not working, but mv command works...

Hello. I would like to ask your help regarding the cp command. We are using a cp command to create a back-up copy of our file but to no avail. It's just not working. We already checked the file and directory permissions and all seems correct. We have a script (ftp.script) which calls on... (1 Reply)
Discussion started by: udelalv
1 Replies

7. Shell Programming and Scripting

Script works fine but not with crontab

Hello All, This is driving me nuts. Wrote a very simple script (it's in csh so sorry about that). Just something very simple though. Here is the catch. Works great from command line sometimes. Other times it runs no errors or anything but I never receive an email. Never runs from crontab... (6 Replies)
Discussion started by: jacktay
6 Replies

8. Shell Programming and Scripting

Cron job fails, but works fine from command line

I have a very basic script that essentially sends a log file, via FTP, to a backup server. My cron entry to run this every night is: 55 23 * * * /usr/bin/archive_logs The script runs perfectly when executed manually, and actually worked via cron for about three weeks. However, it mysteriously... (3 Replies)
Discussion started by: cdunavent
3 Replies

9. UNIX for Advanced & Expert Users

formatting textfile inside ksh script using awk not working

I cannot seem to get this text file to format. Its as if the awk statement is being treated as a simple cat command. I manned awk and it was very confusing. I viewed previous posts on this board and I got the same results as with the the awk command statement shown here. Please help. ... (6 Replies)
Discussion started by: tekline
6 Replies

10. Shell Programming and Scripting

Script works fine until I | more

Hello all, This beats me. I have a script that executes some commands and redirects their output to some text files that I will parse. The commands are along the lines of: dsmadmc -id=admin -pa=admin -outfile=/home/tools/qlog.txt q log f=d If I just run the script it works. If I execute... (2 Replies)
Discussion started by: Skovian
2 Replies
Login or Register to Ask a Question