sed problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed problem
# 1  
Old 01-04-2006
sed problem

Hi I am trying to use sed command as part of my script but it is not doing what I wanted it to do.....I have an xml file where there are instances I get "Holding1" and I want them to be changed to "Holding"...in my script I used it this way....

#! /usr/bin/sh
set -x
if [ -f old.xml ]
then
CNT_HLDING=`grep -c "Holding1" $HOME/old.xml`
if [ $CNT_HLDING -eq 1 ]
then
sed 's/Holding1/Holding/g' $HOME/old.xml > new.xml
chmod 770 new.xml
# mv new.xml old.xml
echo " Holding1 is now Holding...."
fi
else
echo " There are no Holding1 records..."
fi
--------
but it does not do that... when i tried the sed command on my terminal it did not work either....surprise is that it works when i take only part of the file and use the sed command on it.....I do not know whats wrong in this.....does sed have any limitation on xml files or length......
I dont understand why it is not doing it....any help is appreciated...

Thanks.
# 2  
Old 01-04-2006
try this:
Code:
sed 's#Holding1#Holding#g' $HOME/old.xml

# 3  
Old 01-04-2006
Thanks for the reply but it did not work....
here is what I noticed.....
when I copy the entire contents to a different file and do sed on that file it works...but it does not work on original file....what could be the reason..? I want is to work on original file as it will be generated by another system and everyhting will be automated.....do you know the reason why it works if I copy it to another file and does not work with original...I checked all permissions and alll....need some more clues..please.
# 4  
Old 01-04-2006
do you have '^M' or any other control characters in the 'original' file?
you can see the control chars when going into 'vi' and setting ':set list'.
# 5  
Old 01-04-2006
Hmmmm....Here is what it is...I am not able to see anything if i vi the file it is blank.....I checked it three times to be sure....BUT there is a message saying that "A line cannot be longer than 2048 characters" that means the xml has it in one single line....am I correct....
# 6  
Old 01-04-2006
Quote:
Originally Posted by mgirinath
Hmmmm....Here is what it is...I am not able to see anything if i vi the file it is blank.....I checked it three times to be sure....BUT there is a message saying that "A line cannot be longer than 2048 characters" that means the xml has it in one single line....am I correct....
that's correct.
if that's the case 'sed' has a limitation as far as the leghth of a single line goes.

Is it your intent to have ONE single line or is there something 'screwed up'?

You can also display the control characters with:
cat -vet fileName
# 7  
Old 01-04-2006
Thanks a lot....for the inputs...It was the xml in just one single line that was problem....it is resolved now.....thanks once again....

This forum proved to be very useful once again.....
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sed Or Grep Problem OR Terminal Problem?

I don't know if you guys get this problem sometimes at Terminal but I had been having this problem since yesterday :( Maybe I overdid the Terminal. Even the codes that used to work doesn't work anymore. Here is what 's happening: * I wanted to remove lines containing digits so I used this... (25 Replies)
Discussion started by: Nexeu
25 Replies

2. UNIX for Dummies Questions & Answers

sed problem

Hi Folks, I want to replace these numbers with words as the following: $echo 1 11 223 I want to replace each number with it name (e.g. "1" replaced with "one", etc.) just to determine how sed works in such case. Thanks in advance:). Leo (8 Replies)
Discussion started by: leo_ultra_leo
8 Replies

3. Shell Programming and Scripting

sed problem

Hi i am stuck with a very silly problem :mad: below is my code echo 201010_1212_121.xml i need to replace xml with csv so i did echo 201010_1212_121.xml | sed 's/.*\.xml/.*\.csv/' echo 201010_1212_121.xml | sed 's/*.xml/*.csv/' echo 201010_1212_121.xml |... (4 Replies)
Discussion started by: aishsimplesweet
4 Replies

4. Programming

sed problem

Hi all In input file I have records like this: 0,1,0,87,0,0,"6,87","170,03",0,"43,5",0,0,0,0,"6,87","126,53"and in output file I need that these records transforms in : 0 1 0 87 0 0 6,87 170,03 0 43,5 0 0 0 0 6,87 126,53 Could you help me in this case? Please (3 Replies)
Discussion started by: shizik
3 Replies

5. Shell Programming and Scripting

SED - Problem

I have a file with a lot of numbers in it and I need to clean it up and make it look nice and proper. I found this little gem of a one-liner and basically understand what it is doing but I would like to further understand what each part of the command is doing. Being a newb, I am just trying to... (2 Replies)
Discussion started by: genedc1
2 Replies

6. Shell Programming and Scripting

Sed Problem

I have a file which contain many lines see below. "/var/www/abc>" I want to remove Both of these values "" and > (5 Replies)
Discussion started by: aliahsan81
5 Replies

7. Shell Programming and Scripting

Problem in sed.

Hi All! I am trying to use shell variables in a sed statement, but facing an error.I used the double quotes instead if single quotes in the sed statement. # sed -i -e "s/password/$decoded/g;" $CATALINA_HOME/conf/server.xml sed: -e expression #1, char 11: unterminated `s' command # ... (5 Replies)
Discussion started by: nua7
5 Replies

8. Shell Programming and Scripting

Problem with SED

Hi, I have to use SED to remove the prefix "219-" from a text file containing phone numbers and I have to remove the ":" as well. I write the following code but it does not seem to work. Can someone help me please? mohit@mohit-desktop:~$ sed -n s/219-/" "/p corp_phones_bak > noprefix1... (2 Replies)
Discussion started by: mojoman
2 Replies

9. UNIX for Dummies Questions & Answers

Problem with sed

Hi , echo "07/05/2008" | sed 's/\(..\)\/\(..\)\/\(..\)/\3\2\1/' Output :: 20050708 Expected output is 20080507 Iam not getting the bug in this. Thanks for the help -- penchal (4 Replies)
Discussion started by: penchal_boddu
4 Replies

10. UNIX for Dummies Questions & Answers

Sed Problem

I AM TRYING TO APPEND THE HOSTNAME OF A UNIX SERVER I WORK WITH SO I COULD DO A LOADING INTO A DATABASE. THE COMMAND I AM USING IS df -k | sed 's/^/dataserver /' What I intend to do is append the hostname dynamically by using the hostname command instead of having to manually enter... (1 Reply)
Discussion started by: Chelsea
1 Replies
Login or Register to Ask a Question