Sponsored Content
Top Forums Shell Programming and Scripting Parse a string in XML file using shell script Post 302156888 by ayhanne on Wednesday 9th of January 2008 11:33:14 AM
Old 01-09-2008
Hi Matrixmadhan,

I'm working on another script. Basically it's somehow the same with the previous xml but the problem is some of the parameters have space between > <. Please see sample below. Hope you can help me again. Thanks again in advance!

Code:
<?xml version="1.0"?><message><sbr version="1.0"><appid>Messaging</appid><custid>adm_root_provider</custid><callid>032147109</callid> <trmid>5</trmid><portid>16</portid> <callstart>12/11/2007 15:16:46</callstart><callend>12/11/2007 15:17:30</callend><chstart>12/11/2007 15:16:47</chstart><chend>12/11/2007 15:17:30</chend><type>1</type><status>0</status><called>
</called><callreturnused></callreturnused><nonsubused>0</nonsubused></sbr></message><?xml version="1.0"?>

Script that we used before:

Code:
#! /usr/local/bin/perl 

my $c = 0;

open(OUTPUT, ">>", "result.txt");
#chomp(@inputfayl = `cat file.txt`);
chomp(@inputfayl = `ls -lrt | awk '/SMSR/ { before = curr; curr = \$9 }END{ print before }'`);
#system("echo $inputfayl >> newfile.txt");
# if (compare("newfile.txt","oldfile.txt") == 0) {
   while (<@inputfayl>) {
      if (/SMSR/) {
        $inputfayl=$_;
        system("echo $inputfayl >> newfile.txt");
          use File::Compare;
           if (compare("newfile.txt","oldfile.txt") == 1) {
          print OUTPUT "$inputfayl ##########################################################################################\n";
          &processi; 
      }
      else {
      print "wala";
      system("rm newfile.txt");

    }
    }
}
sub processi { 
open inputfayl or die "Cannot open file for read :$!";

while(<inputfayl>) {
  chomp;
    my @arr = split(/></);
    foreach (@arr) {
    if( /xml version/ ) {
      $c++;
      print OUTPUT "\n";
    }
    if( />/ && /</ ) {
      if( $c == 1 ) {
        s/(.*)>(.*)<.*$/\1|\2/;
        my($tmp1, $tmp2) = split(/\|/);
        $data .= (" " . $tmp2);
        printf OUTPUT "%s ", $tmp1;
      }
      else {
        s/(.*)>(.*)<.*$/\2/;
        printf OUTPUT "%s ", $_;
      }
    }
  }
  print OUTPUT "\n";
  print OUTPUT "$data\n" if( /xml version/i );
}

close inputfayl;

system("rm oldfile.txt");
system("mv newfile.txt oldfile.txt");
#exit 0
}
exit 0

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parse String in XML file

Hello All, I am new to this and I need to parse an XML file. Here's the XML Input File: <Report version="1.2"> <summary fatals="0" testcases="1" expected_fails="0" unexpected_passes="0" warnings="9" tests="21" errors="0" fails="1" passes="20" /> <testresult... (4 Replies)
Discussion started by: racbern
4 Replies

2. Shell Programming and Scripting

Need help in creating a Unix Script to parse xml file

Hi All, My requirement is create an unix script to parse the xml file and display the values of the Elements/value between the tags on console. Like say, I would like to fetch the value of errorCode from the below xml which is 'U007' and display it. Can we use SED command for this? I have tried... (10 Replies)
Discussion started by: Anil.Wmg
10 Replies

3. Shell Programming and Scripting

Parse XML file into CSV with shell?

Hi, It's been a few years since college when I did stuff like this all the time. Can someone help me figure out how to best tackle this problem? I need to parse a file full of entries that look like this: <eq action="A" sectyType="0" symbol="PGR" exch="CA" curr="VEF" sess="NORM"... (7 Replies)
Discussion started by: Pcushing
7 Replies

4. Shell Programming and Scripting

regex/shell script to Parse through XML Records

Hi All, I have been working on something that doesn't seem to have a clear regex solution and I just wanted to run it by everyone to see if I could get some insight into the method of solving this problem. I have a flat text file that contains billing records for users, however the records... (5 Replies)
Discussion started by: Jerrad
5 Replies

5. Shell Programming and Scripting

Parse XML file in shell script

Hi Everybody, I have an XML file containing some data and i want to extract it, but the specific issue in my file is that the data is repeated some times like the following example : <section1> <subsection1> X=... Y=... Z=... <\subsection1> <subsection2> X=... Y=... Z=...... (2 Replies)
Discussion started by: yassine
2 Replies

6. Shell Programming and Scripting

Shell script (not Perl) to parse xml with awk

Hi, I have to make an script according to these: - I have couples of files like: xxxxxxxxxxxxx.csv xxxxxxxxxxxxx_desc.xml - every xml file has diferent fields, but keeps this format: ........ <defaultName>2011-02-25T16:43:43.582Z</defaultName> ........... (2 Replies)
Discussion started by: Pluff
2 Replies

7. Shell Programming and Scripting

How to parse xml file in variable-string?

In the wake of the post: how-parse-following-xml-file Thank you for the very useful chakrapani response 302355585-post4 ! A close question. How to pass a file to xmllint in variable? For example, let it be: NEARLY_FILE='<?xml version="1.0" encoding="iso-8859-1"?><html><set label="09/07/29"... (0 Replies)
Discussion started by: OleM2k
0 Replies

8. Shell Programming and Scripting

How to Parse the XML data along with the URL in Shell Script?

Hi, Can anybody help to solve this. I want to parse some xmldata along with the URL in the Shell. I'm calling the URL via the curl command Given below is my shell script file export... (7 Replies)
Discussion started by: Megala
7 Replies

9. Shell Programming and Scripting

Using shell command need to parse multiple nested tag value of a XML file

I have this XML file - <gp> <mms>1110012</mms> <tg>988</tg> <mm>LongTime</mm> <lv> <lkid>StartEle=ONE, Desti = Motion</lkid> <kk>12</kk> </lv> <lv> <lkid>StartEle=ONE, Source = Velocity</lkid> <kk>2</kk> </lv> <lv> ... (3 Replies)
Discussion started by: NeedASolution
3 Replies

10. Shell Programming and Scripting

Parse xml in shell script and extract records with specific condition

Hi I have xml file with multiple records and would like to extract records from xml with specific condition if specific tag is present extract entire row otherwise skip . <logentry revision="21510"> <author>mantest</author> <date>2015-02-27</date> <QC_ID>334566</QC_ID>... (12 Replies)
Discussion started by: madankumar.t@hp
12 Replies
fwb_ipfw(1)							 Firewall Builder						       fwb_ipfw(1)

NAME
fwb_ipfw - Policy compiler for ipfw SYNOPSIS
fwb_ipfw [-vVx] [-d wdir] [-o output.fw] [-i] -f data_file.xml object_name DESCRIPTION
fwb_ipfw is a firewall policy compiler component of Firewall Builder (see fwbuilder(1)). This compiler generates code for ipfw - a firewall and traffic shaper in FreeBSD (see ipfw(8)). Compiler reads objects definitions and firewall description from the data file specified with "-f" option and generates firewall configuration and activation script. The generated file has a name that starts with the name of the firewall object, with an extension ".fw". It is a shell script that flushes current policy, then loads new filter and nat rules. The data file and the name of the firewall objects must be specified on the command line. Other command line parameters are optional. OPTIONS
-f FILE Specify the name of the data file to be processed. -o output.fw Specify output file name -d wdir Specify working directory. Compiler creates firewall activation script in this directory. If this parameter is missing, then all files will be placed in the current working directory. -v Be verbose: compiler prints diagnostic messages when it works. -V Print version number and quit. -i When this option is present, the last argument on the command line is supposed to be firewall object ID rather than its name -x Generate debugging information while working. This option is intended for debugging only and may produce lots of cryptic messages. NOTES
Support for ipfw was added in version 1.0.10 of Firewall Builder URL
Firewall Builder home page is located at the following URL: http://www.fwbuilder.org/ BUGS
Please report bugs using bug tracking system on SourceForge: http://sourceforge.net/tracker/?group_id=5314&atid=105314 SEE ALSO
fwbuilder(1), fwb_ipt(1), fwb_pf(1) fwb_ipf(1) FWB
fwb_ipfw(1)
All times are GMT -4. The time now is 02:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy