Replace HTML tags using sed regex


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace HTML tags using sed regex
# 1  
Old 02-20-2015
Replace HTML tags using sed regex

I need all the end tags of </font> to be replaced with new line yet enclosing tag to be retained </font>. Please help me in this regard.

Input:

Code:
<font>abc</font>def<font>ghi</font>

Output:

Code:
<font>abc</font>
def
<font>ghi</font>

# 2  
Old 02-20-2015
Hello Badhrish,

Following may help you in same, if your all input data is in same provided form as per your shown input.
Code:
awk -F"</font>" '{for(i=1;i<=NF;i++){if($i ~ /^</ && $i !~ /^$/){print $i FS} else if($i !~  /^</ && $i !~ /^$/){gsub(/</,"\n&",$i);print $i FS}}}' Input_file

Output will be as follows.
Code:
<font>abc</font>
def
<font>ghi</font>

EDIT: Added a non one liner form of solution on same.
Code:
awk -F"</font>" '{
                        for(i=1;i<=NF;i++){
                                                if($i ~ /^</ && $i !~ /^$/)             {
                                                                                                print $i FS
                                                                                        }
                                                else if($i !~  /^</ && $i !~ /^$/)      {
                                                                                                gsub(/</,"\n&",$i);
                                                                                                print $i FS
                                                                                        }
                                          }
                 }
                ' Input_file


Thanks,
R. Singh

Last edited by RavinderSingh13; 02-20-2015 at 09:09 AM.. Reason: Added a non oneliner form of solution
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 02-20-2015
Works like charm. thank you Ravinder
# 4  
Old 02-20-2015
Try also
Code:
sed -r 's/([^^>])(<font>)/\1\n\2/g;s/(<\/font>)([^$>])/\1\n\2/g' file
<font>abc</font>
def
<font>ghi</font>

This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to parse a specifc value between html tags using sed?

Hi, im trying to read a Temperature value from html code. So far i have managed to reduce the whole html page down to this single line with the following sed command:sed -n '/Temperature/p' $temp_temperature | tee temp_string <TD width='350'>Temperature :</td><td>25... (2 Replies)
Discussion started by: naittis
2 Replies

2. UNIX for Dummies Questions & Answers

Replacing HTML tags with sed

Ok, so this is stupid simple, and I know I am going to feel like an idiot when I get help. I am altering a HTML report that has contraband in it so that the links to said contraband and the images are not shown. The link/img pairs are in the form of : <a... (5 Replies)
Discussion started by: twjolson
5 Replies

3. Shell Programming and Scripting

help with sed needed to extract content from html tags

Hi I've searched for it for few hours now and i can't seem to find anything working like i want. I've got webpage, saved in file par with form like this: <html><body><form name='sendme' action='http://example.com/' method='POST'> <textarea name='1st'>abc123def678</textarea> <textarea... (9 Replies)
Discussion started by: seb001
9 Replies

4. Shell Programming and Scripting

sed - striping out html tags

I have pasted the contents of a log file (swmbackup.wrkstn.1262071383.sales2a) below: Workstation: sales2a<BR Vault sales2a-hogwarts will be initialized.<BR <font color="red"There was a problem mounting /mnt/sales2a/desktop$ </FONT<BR <font color="red"There was a problem mounting... (4 Replies)
Discussion started by: bigtonydallas
4 Replies

5. Shell Programming and Scripting

sed: how to replace regex with a ' (quote) mark

I've got a text file which has " marks where it there should be ' marks. I tried to do it with sed, but it won't allow me to escape the ' mark. Here's what I tried to do: sed 's/"/\\'/g' file.txt How can this be done? Thanks (3 Replies)
Discussion started by: CraigMoore
3 Replies

6. Shell Programming and Scripting

How to use sed to remove html tags including text between them

How to use sed to remove html tags including text between them? Example: User <b> rolvak </b> is stupid. It does not using <b>OOP</b>! and should output: User is stupid. It does not using ! Thank you.. (2 Replies)
Discussion started by: alphagon
2 Replies

7. Shell Programming and Scripting

Replace space, that is not in html tags <> with new line using sed

Hi, I am working on transforming html code text into the .vert text format. I want to use linux utility sed. I have this regexp which should do the work: s/ \(?!*>\)/\n/g. I use it like this with sed: echo "you <we try> there" | sed 's/ \(?!*>\)/\n/g' ... The demanded output should be: you <we... (5 Replies)
Discussion started by: matt1311
5 Replies

8. Shell Programming and Scripting

Problem with 'sed' command while using HTML tags

Hello, I am using sed as follows - sed 's/CONTACT SYSTEMS! Some payments have been rejected/<B><font color="red" size="5.0pt"CONTACT SYSTEMS! Some payments have been rejected</font></B>/' $REPORT_FILE But while executing this, I am getting the error as - sed: command garbled &... (5 Replies)
Discussion started by: The Observer
5 Replies

9. Shell Programming and Scripting

How to supplement HTML tags with SED

I am cleaning up HTML with sed. With the regexp <a name="+"></a><h>*<span class="mw-headline" >+</span></h> I can find the tags I need. But when I place them in a sed command, sed fails. So I started building up from a smaller command. This is where I am now: sed -r -e s/"<a... (3 Replies)
Discussion started by: DocBrewer
3 Replies

10. Shell Programming and Scripting

unsing sed to strip html tags - help

Hi, I am trying to strip html tags of a string for example <TD>no problem</TD> the sesult should be no problem but could never get rid off all the tags sed 's/<..D>//g' Please help, I am new (3 Replies)
Discussion started by: zap
3 Replies
Login or Register to Ask a Question