Replacing tags


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replacing tags
# 1  
Old 09-27-2012
MySQL Replacing tags

Hi ,

I have a file ...it's like a xml file.

File 1:

<tag1> Value11</tag1><tag2>value12</tag2>
<tag1>Value21</tag1>
...... Continues

Now what I want as output is

Value11|value12
Value21||
......Continues

This is just learning purpose. I tried reading each line, then parsing it. It's working file. But looking for better suggestion Smilie.
# 2  
Old 09-27-2012
try this..

Code:
awk -F "[<>]" '{ for(i=3;i<=NF;i+=4){ printf $i"|"}}{print ""}' file

another one..
Code:
awk -F "[<>]" '{ for(i=3;i<=NF;i+=4){if(s){s=s"|"$i}else{s=$i}}}{print s;s=""}' file

# 3  
Old 09-27-2012
It's giving


Value11|value12|
Value21|

not


Value11|value12
Value21||

In second column <tag2> is missing( or optional). So for that it should also print a '|'
# 4  
Old 09-27-2012
something like this.?
Code:
 awk -F "[<>]" '{ for(i=3;i<=NF;i+=4){if(s){s=s"|"$i}else{s=$i}}}{if(NF>5){print s;s=""}else{print s"||";s=""}}' file

This User Gave Thanks to pamu For This Post:
# 5  
Old 09-27-2012
Like this?
Code:
perl -pe 'while(s:<.*?>(.*?)</.*?>:\1|:){next}' file

This User Gave Thanks to elixir_sinari For This Post:
# 6  
Old 09-27-2012
Quote:
Originally Posted by pamu
something like this.?
Code:
 awk -F "[<>]" '{ for(i=3;i<=NF;i+=4){if(s){s=s"|"$i}else{s=$i}}}{if(NF>5){print s;s=""}else{print s"||";s=""}}' file


Yes...

But can it be done without hardcoding the value?

what if I have more than 2 tags? The condition is 1st tag is always mandatory. Rest can be optional. So if a file has total 5 tags then total 4 '|' should be there in the output file.

To elaborate
Input: Number of tags here is 4
<tag1> Value11</tag1><tag2>value12</tag2><tag3>value13</tag3><tag4>value14</tag4>
<tag1>Value21</tag1><tag3>value23</tag3>

Output:
Value11|value12|value13|value14
Value21||value23|
# 7  
Old 09-27-2012
for more tags..
Code:
$ cat file
<tag1> Value11</tag1><tag2>value12</tag2>
<tag1>Value21</tag1>
<tag1> Value11</tag1><tag2>value12</tag2><tag1> Value11</tag1><tag2>value12</tag2>

$ awk -F "[<>]" '{ for(i=3;i<=NF;i+=4){if(s){s=s"|"$i}else{s=$i}}}{if(NF>5){print s;s=""}else{print s"||";s=""}}' file

 Value11|value12
Value21||
 Value11|value12| Value11|value12

let me know if you want add something else..
This User Gave Thanks to pamu For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

Problem while replacing text between two tags

Hi, I have a file i which i want to replace {gIntegraHost} to {gTestRunHost} between <TCPSampler and curl only. I am firing below command sed '1,/<TCPSampler/!{ /curl/,/<TCPSampler/!s/{gIntegraHost}/{gTestRunHost}/; }' file1 But only on instance is getting replaced not all. Any idea how... (6 Replies)
Discussion started by: abhitanshu
6 Replies

3. Shell Programming and Scripting

Replacing part of XML code inside comment tags

Hello! I'd like to modify custom values in a XML config file between comment tags using bash script. <feature> <keyboardshortcut>C-m</keyboardshortcut> <option1>disabled</option2> <option2>enabled</option2> </feature> <!-- bash script features START --> <feature> ... (2 Replies)
Discussion started by: prism1
2 Replies

4. Shell Programming and Scripting

Replacing number between xml tags with ksh shell script

Hallo, im basically a complete noob on shell scripting and im trying to replace or rather add 1 to a number between xml tags. The xml basically has a tag somewhere that looks like this: <tag>12345678901234</tag> Now i want to replace the number between the tags. And i want the file to... (6 Replies)
Discussion started by: Demoric
6 Replies

5. Shell Programming and Scripting

Replacing variable values in html tags

Hi please help me with this . I have a file test.txt with following content $cat test.txt <td>$test</td> <h2>$test2</h2> and I have a ksh with following content $cat test.ksh #!/bin/ksh test=3 test2=4 while read line do echo $line done < test.html I am expecting the output as (4 Replies)
Discussion started by: panduandpavan
4 Replies

6. Shell Programming and Scripting

Replacing text between Tags, with output from a complex command

The Problem I have n files all named "conf.cfg", each of which contain a line that reads: "MyVar=XXX", where XXX can be any value. I have a second file called report.xml, that might read: <Reports> <Report>Report1</Report> <Report>Report2</Report> <Report>Report3</Report> </Reports> I... (1 Reply)
Discussion started by: Flang
1 Replies

7. Shell Programming and Scripting

Replacing the last record in xml with different tags

I have special requirement, my system provided the xml file as below(available xml file) and I need to convert it as below desired xml file. is it possible thru shell scripts or awk? What I need is : my available xml contains number of records with tags <RevenueAmounts>, the last of record is... (6 Replies)
Discussion started by: LinuxLearner
6 Replies

8. Shell Programming and Scripting

searching & replacing/removing only certain HTML tags

I generally save a lot of web pages for reading offline which works out great for school. Now I have to spend a lot of time on the bus and I am looking for the best way to read some of these webpages using my Nokia 7610. I have uploaded the files to my phone, but they are deadly deadly slow to... (2 Replies)
Discussion started by: naphelge
2 Replies

9. Shell Programming and Scripting

In PHP replacing text between TAGS & URI information in Title Tag

Hi, what I am trying to do in PHP, is to replace the Title. I need some of the URL information inside aswell depending on the domain. The title is always different so I need to store it in a variable, put the url info like described below in front of it. Here is an example how it should... (0 Replies)
Discussion started by: lowmaster
0 Replies

10. Shell Programming and Scripting

help in replacing ??

hi all i have input file like this abc.txt filename.out: <TAB>ABC<TAB>9 <TAB>AKC<TAB>1 filename1.out: <TAB>XYZ<TAB>1 <TAB>XYN<TAB>4 and i am trying to replace \n\t with \t so that output will be like this: filename.out:<TAB>ABC<TAB>9<TAB>AKC<TAB>1... (5 Replies)
Discussion started by: zedex
5 Replies
Login or Register to Ask a Question