Visit Our UNIX and Linux User Community


SED command help


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers SED command help
# 8  
Old 10-24-2007
Dear Radoulov,
When I m doign generalization for other special character also, it giving me trouble.
When I add it for lines having < character

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

Its not modifying the lines having &amp;.

but when i add only

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

it works. So what changes do i need it to make it work for all.

PS: I have added [^\/], because the sed script was removing the last two lines of xml file.
# 9  
Old 10-24-2007
Could you post a sample of your input with the patterns (including the &amp/&lt) you want to substitute?
# 10  
Old 10-24-2007
This is some sample data of my file.
<EQROW CHG="U" KEY="22" ><EFFECT EFFRG="00122323"></EFFECT>
<EIN> 14XE </EIN>
<PARTDESC>ANN EMER ELECPWR/RAT/
&amp;
/EMER GEN</PARTDESC>
<LOCATION><ZONE>211</ZONE>
</LOCATION>
<HDIAGNBR><REFEXT REFMAN="SSM" REFLOC="24-24/02" REFMODEL="A319/A320" REFSPL="2D671">SSM 24-24/02</REFEXT>
</HDIAGNBR>
</EQROW>
<EXTWROW CHG="U" KEY="23" ><EFFECT EFFRG="02399 "></EFFECT>
<ACTWIRE><WIRE><WIRECODE><WIRENBR>2121-5047</WIRENBR>
<WIREAWG>24</WIREAWG>
</WIRECODE>
<WIRERTE>1M</WIRERTE>
</WIRE>
<TERMNBR>
&amp;
C</TERMNBR>
<TERMPNR>EN3155-019F2018</TERMPNR>
</ACTWIRE>
</EXTWROW>
<EXTWROW CHG="U" KEY="2317743">
<ACTWIRE><WIRE><WIRECODE><WIRENBR>2121-5047</WIRENBR>
<WIREAWG>24</WIREAWG>
</WIRECODE>
<WIRERTE>1M</WIRERTE>
</WIRE>
<TERMNBR>
&lt;
C</TERMNBR>
<TERMPNR>EN3155-019F2018</TERMPNR>
</ACTWIRE>
</EXTWROW>

Like this in whole file those character are spread. I want to remove the etxra line associated with them, and also retaing those value(&amp;&lt; ect.).
# 11  
Old 10-24-2007
Hm,
with awk it would be:
Code:
awk '/^&(amp|lt)/ { re = $0
	getline
	printf "%s%s%s\n", rec, re, $0
	next
	}
	{ rec = $0 }
1' filename

(use nawk or /usr/xpg4/bin/awk on Solaris)

For sed I have to think a little bit Smilie
# 12  
Old 10-24-2007
If you get how it can be done using SED, then it will be nice to me. I m running the SED in UNIX environment. no idea about solaris. Smilie
# 13  
Old 10-24-2007
Quote:
Originally Posted by sanjay singh
If you get how it can be done using SED, then it will be nice to me. I m running the SED in UNIX environment. Smilie
your system not only comes with sed, it comes with awk too and many other essential tools. you should use a tool that does the job well.
# 14  
Old 10-24-2007
I agree with ghostdog74,
it seems unlikely that you have not awk on your system.

Anyway, you can try this not elegant sed solution, _based on your sample input_:
Code:
sed  '/<\/[^/>]*>$/!{N;N;s/\n\(&[^;]*;\)\n/\1/;}' filename


Last edited by radoulov; 10-24-2007 at 05:00 PM.. Reason: simplified ...
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #486
Difficulty: Medium
After a computer program is loaded and setup, the operating system begins executing the instructions at the program's end point in reverse byte-execution mode.
True or False?

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

Featured Tech Videos