Help in parsing xml file (sed/nawk)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help in parsing xml file (sed/nawk)
# 8  
Old 08-11-2011
for e.g.

if I need to add "today's date" before every order in output file during awk.
I tried
Code:
nawk 'BEGIN{RS=""; FS="\</inputProvision\>"} {print "hello"; for(i=1;i<=NF;i++){ if ($i~/\"\"/) print $i"</inputProvision>"}}' test

but it's printing hello before and after each order.

Plz explain the awk so that I can change it accordingly.

thanks a lot..

Last edited by fpmurphy; 08-11-2011 at 07:51 PM..
# 9  
Old 08-11-2011
Please use the code tag (while posting any code )

you can pass the variable and print in awk.

Code:
nawk -v mydate=`date` 'BEGIN{RS=""; FS="\</inputProvision\>"} {print mydate ; for(i=1;i<=NF;i++){ if ($i~/\"\"/) print $i"</inputProvision>"}}' test

# 10  
Old 08-11-2011
Code:
nawk -v mydate=`date` 'BEGIN{RS=""; FS="\</inputProvision\>"} {print mydate ; for(i=1;i<=NF;i++){ if ($i~/\"\"/) print $i"</inputProvision>"}}' test

its giving me the error:

nawk: can't open file 11
source line number 1

whereas if I use mydate=hello in side nawk, it works..

Last edited by fpmurphy; 08-11-2011 at 07:51 PM.. Reason: Code tags please!
# 11  
Old 08-11-2011
Quote:
Originally Posted by shekhar2010us
nawk -v mydate=`date` 'BEGIN{RS=""; FS="\</inputProvision\>"} {print mydate ; for(i=1;i<=NF;i++){ if ($i~/\"\"/) print $i"</inputProvision>"}}' test

its giving me the error:

nawk: can't open file 11
source line number 1

whereas if I use mydate=hello in side nawk, it works..
try this, put double quotes around mydate=`date`

Code:
nawk -v "mydate=`date`" 'BEGIN{RS=""; FS="\</inputProvision\>"} {print mydate ; for(i=1;i<=NF;i++){ if ($i~/\"\"/) print $i"</inputProvision>"}}' test

This User Gave Thanks to dude2cool For This Post:
# 12  
Old 08-11-2011
try this...

Code:
 myvar=$(date);nawk -v mydate=$myvar 'BEGIN{RS=""; FS="\</inputProvision\>"}  {print mydate ; for(i=1;i<=NF;i++){ if ($i~/\"\"/) print  $i"</inputProvision>"}}' test

This User Gave Thanks to itkamaraj For This Post:
# 13  
Old 08-11-2011
Thanks itkamaraj and dude2cool for the help...
@itkamaraj, thanks for the awk tutorial link. its too good....

I want to do one thing with this awk. It would be great if you can help me....

Previous code:
Code:
nawk -v "mydate=`date`" 'BEGIN{RS=""; FS="\</inputProvision\>"} {print mydate ; for(i=1;i<=NF;i++){ if ($i~/\"\"/) print $i"</inputProvision>"}}' test

$i prints everything before </inputProvision> where value="".......... This is what I want.
I also want to print a a tag along with it which is a part of $i.

For that I am doing:
Code:
nawk -v "mydate=`date`" "var2=`grep XYZ $i`" 'BEGIN{RS=""; FS="\</inputProvision\>"} {for(i=1;i<=NF;i++) { if ($i~/value=\"\"/) print var2 mydate $i "</inputProvision>"}}' test

basically in $i, there is a field called XYZ in the format:
<ATTR name="XYZ" value="123456789"/>
I need it's value to be printed along with $i...

can we use awk inside awk..

Thanks.....

Last edited by fpmurphy; 08-11-2011 at 07:52 PM.. Reason: code tags please!!
# 14  
Old 08-11-2011
To keep the forums high quality for all users, please take the time to format your posts correctly.

First of all, use Code Tags when you post any code or data samples so others can easily read your code. You can easily do this by highlighting your code and then clicking on the # in the editing menu. (You can also type code tags [code] and [/code] by hand.)

Second, avoid adding color or different fonts and font size to your posts. Selective use of color to highlight a single word or phrase can be useful at times, but using color, in general, makes the forums harder to read, especially bright colors like red.

Third, be careful when you cut-and-paste, edit any odd characters and make sure all links are working property.

Thank You.

The UNIX and Linux Forums
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Parsing XML file

I want to parse xml file sample file....... <name locale="en">my_name<>/name><lastChanged>somedate</lastChanged><some more code here> <name locale="en">tablename1<>/name><lastChanged>somedate</lastChanged> <definition><dbquery><sources><sql type="cognos">select * from... (10 Replies)
Discussion started by: ms2001
10 Replies

2. Shell Programming and Scripting

XML: parsing of the Google contacts XML file

I am trying to parse the XML Google contact file using tools like xmllint and I even dived into the XSL Style Sheets using xsltproc but I get nowhere. I can not supply any sample file as it contains private data but you can download your own contacts using this script: #!/bin/sh # imports... (9 Replies)
Discussion started by: ripat
9 Replies

3. Shell Programming and Scripting

XML parsing using nawk help needed

i need one help, below is one more xml file with diff pattern i tried it but dint get it , iam sure its a peice of cake for you guys. <xn:MeContext id="LSVLKY001"> <xn:ManagedElement id="1"> <un:RncFunction id="1"> <un:UtranCell... (2 Replies)
Discussion started by: tech_frk
2 Replies

4. Shell Programming and Scripting

Need help parsing data with sed and/or nawk

Good day all. I have the following entries of data in a file in a column, however, I need this data written on a single line with several parameters in a different order. Current format: Treatment ,parmeter1=value ,parmeter2=value ,parmeter3=value ,parmeter4=value... (7 Replies)
Discussion started by: BRH
7 Replies

5. Shell Programming and Scripting

Parsing xml file

hi guys, great help to the original question, can i expand please? i have large files filled with blocks like this <Placemark> network type: hot line1 line2 line3 <styleUrl>red.png</styleUrl> </Placemark> <Placemark> network type: cold line1 line2 line3... (3 Replies)
Discussion started by: garvald
3 Replies

6. Shell Programming and Scripting

how to parse the file in xml format using awk/nawk

Hi All, I have an xml file with the below format. <a>111</a><b>222</b><c>333<c><d><e>123</e><f>234</f><d><e>456</e><f>789</f> output needed is 111,222,333,123,234 111,222,333,456,789 nawk 'BEGIN{FS="<|>"} {print a,b,c,e,f a="" ... (7 Replies)
Discussion started by: natalie23
7 Replies

7. Shell Programming and Scripting

parsing(xml) using nawk/awk

Hi , I have an xml format as shown below: <Info> <last name="sean" first name="john"/> <period="5" time="11"/> <test value="1",test2 value="2",test3 value="3",test4 value="5"> <old> <value1>1</value1> <value2>2</value2> </old> <new> <value1>4</value1> <value2>3</value2> </new>... (1 Reply)
Discussion started by: natalie23
1 Replies

8. Shell Programming and Scripting

parsing xml with awk/sed

Hi people!, I need extract from the file (test-file.txt) the values between <context> and </context> tag's , the total are 7 lines,but i can only get 5 or 2 lines!!:confused: Please look my code: #awk '/context/{flag=1} /\/context/{flag=0} !/context/{ if (flag==1) p rint $0; }'... (3 Replies)
Discussion started by: ricgamch
3 Replies

9. UNIX for Advanced & Expert Users

Parsing xml file using Sed

Hi All, I have this(.xml) file as: <!-- define your instance here --> <instance name='ins_C2Londondev' user='' group='' fullname='B2%20-%20London%20(dev)' > <property> </property> </instance> I want output as: <!-- define your instance here --> <instance... (3 Replies)
Discussion started by: kapilkinha
3 Replies

10. Shell Programming and Scripting

can i do XML parsing usind sed

Hi all... I want to parse a xml filein unix .. Can i use SED or unix script to parse the xml file .. If so can anyone show a sample script that will parse the xml file .. Thanks in advance, Arun ,,,, (3 Replies)
Discussion started by: arunkumar_mca
3 Replies
Login or Register to Ask a Question