SED command help


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers SED command help
# 1  
Old 10-23-2007
SED command help

Hi All,
I want to convert the following tag using SED command-

<PARTDESC>CIRCUIT BREAKER LIGHTING/EXT LT/NAV2/
&amp;
LOGO</PARTDESC>

into something like-

<PARTDESC>CIRCUIT BREAKER LIGHTING/EXT LT/NAV2/&LOGO
</PARTDESC>

So that when I fetch the PARTDESC node value it should return me one line value with '&amp;' replaced.

Any help in this will be appreciated.
# 2  
Old 10-23-2007
Code:
sed '/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\1\
/;}' filename

If you want the output to be like this (without the & sign):
Code:
<PARTDESC>CIRCUIT BREAKER LIGHTING/EXT LT/NAV2/LOGO
</PARTDESC>

Otherwise:
Code:
sed '/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\&\1\
/;}' filename

# 3  
Old 10-23-2007
SED script help needed

I tried with your suggestion but i m getting the following error message:-
I m running sed command stored in one file. I write the one suggested with you as-

1. When i put the script:

/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\&\1\/;}

I get the following error message:
sed: FSUM7296 newline or end of file found in pattern

2. when i tries putting it like-
s/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\&\1\/;}

I get the following error:-
FSUM7294 garbage after command.

and the same error with this also:-

s/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\&\1\/;}/



Please suggest me what mistake I m doing.
# 4  
Old 10-23-2007
Note that there is a new line in the command:
Code:
sed '/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\1\ <--
/;}' filename

Code:
$ cat file
<PARTDESC>CIRCUIT BREAKER LIGHTING/EXT LT/NAV2/
&amp;
LOGO</PARTDESC>
$ sed '/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\&\1\/;}' file
sed: command garbled: /^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\&\1\/;}
$ sed '/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\&\1\
> /;}' file
<PARTDESC>CIRCUIT BREAKER LIGHTING/EXT LT/NAV2/&LOGO
</PARTDESC>
$

Try with copy/paste.
# 5  
Old 10-23-2007
SED script help needed

Thanks a lot Radoulov. Smilie
it works fine for my requirement. One more update I want in that, when changing
Code:
<PARTDESC>CIRCUIT BREAKER            LIGHTING/EXT LT/NAV2/
&amp;
 LOGO</PARTDESC>

to

Code:
<PARTDESC>CIRCUIT BREAKER            LIGHTING/EXT LT/NAV2/ LOGO
</PARTDESC>

I want there the new line shouldnt be there. So actual output i require is:

Code:
<PARTDESC>CIRCUIT BREAKER   LIGHTING/EXT LT/NAV2/LOGO</PARTDESC>

that is in one line. Could you please help me in this regards. Im new to SED so please dont mind for my silly questions.

Thanks again for your valuable time.
# 6  
Old 10-23-2007
Code:
sed '/^<PARTDESC/{N;N;s/\n&amp;\n\([^<]*\)/\1/;}' filename

It's only about the new line, or you want to squeeze the spaces as well?
# 7  
Old 10-24-2007
Thanks again for your valuable advice. Smilie
It solved my problem. Smilie

I have generalized this as for all the tags:
Code:
/^<[^\/]/{N;N;s/\n&amp;\n\([^<]*\)/\&amp;\1/;}

So that it should work for any tag having similar kind of values.

I want to preserve &amp, so i have modified it in the last. Any suggestion for improvement will be appreciated.


Sanjay
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Output of sed command to another sed command

Hi All, I'm relatively new to Unix scripting and am trying to get my head around piping. I'm trying to take a header record from one file and prepend it to another file. I've done this by creating several temp files but i'm wondering if there is a cleaner way to do this. I'm thinking... (10 Replies)
Discussion started by: BigCroyd
10 Replies

2. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

3. Shell Programming and Scripting

sed Command

Hello, I'm working with this command which I'm having trouble understanding it: sed -e '1,$ s/SUB/N/g' < $1 > file.txt Where SUB stand for an special character with code in ASCII is 0x1A, notepad read it as a right arrow. Any help will be appreciated. (5 Replies)
Discussion started by: emilioveras
5 Replies

4. Shell Programming and Scripting

sed returns error "sed: -e expression #1, char 18: unterminated `s' command"

Hello All, I have something like below LDC100/rel/prod/libinactrl.a LAA2000/rel/prod/libinactrl.a I want to remove till first forward slash that is outputshould be as below rel/prod/libinactrl.a rel/prod/libinactrl.a How can I do that ??? (8 Replies)
Discussion started by: anand.shah
8 Replies

5. UNIX for Advanced & Expert Users

sed command

Hi..... I'm using sed command for replace the words in a file cat >test.txt My test.txt contains Mary had a little ham Mary fried a lot of spam Jack ate a Spam sandwich Jill had a lamb spamwich Marry had a spicy wich $ sed 's/wich$/mirchi/g' test.txt output is: Mary had a little ham... (24 Replies)
Discussion started by: ksrivani
24 Replies

6. UNIX for Dummies Questions & Answers

sed insert command and variable expansion/command substitution

I know this script is crummy, but I was just messing around.. how do I get sed's insert command to allow variable expansion to show the filename? #!/bin/bash filename=`echo $0` /usr/bin/sed '/#include/ { i\ the filename is `$filename` }' $1 exit 0 (8 Replies)
Discussion started by: glev2005
8 Replies

7. Shell Programming and Scripting

Convert Sed command to perl command

Hello, Can any perl experts help me convert my sed string to perl. I am unsuccessful with this. I have to remove this string from html files OAS_AD('Top'); I have come up with this. However the requirement is in perl. for find in $(find . -type f -name "file1.html") ; do cat $find |... (2 Replies)
Discussion started by: abacus
2 Replies

8. UNIX for Dummies Questions & Answers

some help with the sed command please

hi all, attached you can find a small txt file ( .txt ), GIVEN that past_scheduler="islip" and scheduler="mucf" can somebody please tell me WHY sed 's/-u '$past_scheduler'/-u '$scheduler'/g' .txt > .txt.temp fails ? thanx (3 Replies)
Discussion started by: OneDreamCloser
3 Replies

9. Shell Programming and Scripting

Loop with sed command to replace line with sed command in it

Okay, title is kind of confusion, but basically, I have a lot of scripts on a server that I need to replace a ps command, however, the new ps command I'm trying to replace the current one with pipes to sed at one point. So now I am attempting to create another script that replaces that line. ... (1 Reply)
Discussion started by: cbo0485
1 Replies

10. Shell Programming and Scripting

awk/sed Command : Parse parameter file / send the lines to the ksh export command

Sorry for the duplicate thread this one is similar to the one in https://www.unix.com/shell-programming-scripting/88132-awk-sed-script-read-values-parameter-files.html#post302255121 Since there were no responses on the parent thread since it got resolved partially i thought to open the new... (4 Replies)
Discussion started by: rajan_san
4 Replies
Login or Register to Ask a Question