Sponsored Content
Top Forums Shell Programming and Scripting Parse a string in XML file using shell script Post 302148982 by ayhanne on Tuesday 4th of December 2007 01:05:22 PM
Old 12-04-2007
Parse a string in XML file using shell script

Hi Matrixmadhan,

Sorry for the late reply. I tried the script that you provided. My problem is while it's waiting for a new completed CDR, it continously repeats to process the last completed file that's why on the output file the result of processing of last complete CDR repeated lots of times. What I wanted to do is to process the last completed file, then if there's a new completed CDR, it will process the new CDR and if there's no new completed CDR it will not process. I hope you can help me modify the script. Thanks a lot for being patient with me and for all the help.

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

my $c = 0;

open(OUTPUT, ">>", "output.txt");

while (1) {

chomp(@inputfayl = `ls -lrt | awk '/SMSCDR/ { before = curr; curr = \$9 }END{ print before }'`);
   while (<@inputfayl>) {
      if (/CDR/) {
        $inputfayl=$_;
        print OUTPUT "$inputfayl ##########################################################################################\n";
      }
    }
next if ( $inputfayl =~ /tmp/ );
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;

}

close (OUTPUT);


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
MP3CD(1p)						User Contributed Perl Documentation						 MP3CD(1p)

NAME
mp3cd - Burns normalized audio CDs from lists of MP3s/WAVs/Oggs/FLACs SYNOPSIS
mp3cd [OPTIONS] [playlist|files...] -s, --stage STAGE Start at a certain stage of processing: clean Start fresh (default, requires playlist) build Does not clean (requires playlist) decode Turns MP3s/Oggs/FLACs into WAVs correct Fix up any WAV formats norm Normalizes WAV volumes toc Builds a Table of Contents from WAVs toc_ok Checks TOC validity cdr_ok Checks for a CDR burn Burns from the TOC -q Quits after one stage of processing -t, --tempdir DIR Set working dir (default "/tmp/mp3cd-$USER") -d, --device PATH Look for CDR at "PATH" (default "/dev/cdrecorder") -r, --driver TYPE Use CDR driver TYPE (default up to cdrdao) -n, --simulate Don't actually burn a disc but do everything else. -E, --no-eject Don't eject drive after the burn. -L, --no-log Don't redirect output to "tool-output.txt" -T, --no-cd-text Don't attempt to write CD-TEXT tags to the audio CD -c, --cdrdao ARGS Pass the option string ARGS to cdrdao. -S, --skip STAGES Skip the comma-separated list of stages in STAGES. -V, --version Report which version of the script this is. -v, --verbose Shows commands as they are executed. -h, --usage Shows brief usage summary. --help Shows detailed help summary. --longhelp Shows complete help. OPTIONS
-s STAGE, --stage STAGE Starts processing at a given stage. This is used in case you had to stop processing, or a file was missing, or things generally blew up. It is especially useful if a burn fails because then you don't have to start totally over and re-WAV the files. If you just want to perform a single step, use --quit to abort after the stage you request with --stage. Also see --skip. clean This is the default starting stage. The temp directory is cleared out. A playlist is required, since we expect to move to the build stage next, which requires it. build This stage examines the playlist from the command line, and tries to create a list of symlinks from the given playlist. So far, "mp3cd" can understand ".m3u" files, XMLPlaylist files, and lists of files. decode All the files are converted into WAVs. So far, "mp3cd" knows how to decode MP3, Ogg, and FLAC files. (WAVs will be left as they are during this stage.) correct The WAV files are corrected to have the correct bitrate and number of channels, as required for an audio CD. norm The WAV files' volumes are normalized so any large differences in volume between records will be less noticeable. toc Generates a Table of Contents for the audio CD. toc_ok Validates the TOC, just in case something went really wrong with the WAV files. cdr_ok Verifies that there is a CDR ready for burning. burn Actually performs the burn of all the WAV files to the waiting CDR. -q, --quit Aborts after one stage of processing. See --stage. -t DIR, --tempdir DIR Use a working directory other than "/tmp/mp3cd-username". This is where all the file processing occurs. You will generally need at least 650M free here (or more depending on the recording length of your destination CD). -d PATH, --device PATH Use a device path other than "/dev/cdrecorder". -r TYPE, --driver TYPE Use a CDRDAO driver other than what cdrdao automatically detects. Note that some drivers may not support CD-TEXT mode. In this case, try "generic-mmc-raw". -c ARGS, --cdrdao ARGS Pass the given option string of ARGS to cdrdao during each command. -n, --simulate Do not actually write to the disc but simulate the process instead. -E, --no-eject Don't eject drive after the burn. -L, --no-log Don't redirect output to "tool-output.txt". All information will instead be redirected to the terminal via standard output (STDOUT). This will cause a lot of low-level detail to be displayed. -T, --no-cd-text Don't attempt to write CD-TEXT tags to the audio CD. Some devices and drivers do not support this mode. See --driver for more details. -S STAGES, --skip STAGES While processing, skips the stages listed in the comma-separated list of stages given in STAGES. This would only be used if you really know what you're doing. For example, if the audio is already normalized and you didn't want to burn a CD, you could skip the normalizing and burning stages by giving "--skip norm,burn". See --stage and --quit. -V, --version Report which version of mp3cd this is. -v, --verbose Shows commands as they are executed. -h, --usage Show brief usage summary. --help Show detailed help summary. --longhelp Shows the full command line instructions. DESCRIPTION
This script implements the suggested methods outlined in the Linux MP3 CD Burning mini-HOWTO: http://tldp.org/HOWTO/MP3-CD-Burning/ <http://tldp.org/HOWTO/MP3-CD-Burning/> This will burn a playlist (.m3u, XMLPlaylist or command line list) of MP3s, Oggs, FLACs, and/or WAVs to an audio CD. The ".m3u" format is really nothing more than a list of fully qualified filenames. The script handles making the WAVs sane by resampling if needed, and normalizing the volume across all tracks. If a failure happens, earlier stages can be skipped with the '-s' flag. The file "tool-output.txt" in the temp directory can be examined to see what went wrong during the stage. Some things are time-consuming (like decoding the audio into WAVs) and if the CD burn fails, it's much nicer not to have to start over from scratch. When doing this, you will not need the m3u file any more, since the files have already been built. See the list of stages using '-h'. PREREQUISITES
Requires "cdrdao", and that /dev/cdrecorder is a valid symlink to the /dev/sg device that cdrdao will use. Use .cdrdao to edit driver options. (See "man cdrdao" for details.) Requires "sox" to decode MP3 and check/correct WAV formats. http://www.spies.com/Sox/ Requires "normalize" to process the audio. http://www.cs.columbia.edu/~cvaill/normalize/ Optionally requires "oggdec" to decode Ogg to WAV files. http://www.gnu.org/directory/audio/ogg/OggEnc.html/ Optionally requires "flac" to decode flac to WAV files. http://flac.sourceforge.net/ Optionally requires "Config::Simple" Perl module if you want to use the .mp3cdrc file. http://search.cpan.org/~sherzodr/Config-Simple/ FILES
~/.mp3cdrc Default options can be recorded in this file. The option names are the same as their command line long-name. Command line options will override these values. All options are run through perl's eval. For example: tempdir: /scratch/mp3cd/$ENV{'USER'} device: /dev/burner AUTHOR
Kees Cook <kees@outflux.net> Contributors: J. Katz (Ogg support) Alex Rhomberg (XMLPlaylist support) Kevin C. Krinke (filelist inspiration, and countless many patches) James Greenhalgh (flac support) SEE ALSO
perl(1), cdrdao(1), sox(1), oggdec(1), flac(1), sox(1), normalize(1). COPYRIGHT
Copyright (C) 2003-2011 Kees Cook kees@outflux.net, http://outflux.net/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. http://www.gnu.org/copyleft/gpl.html perl v5.14.2 2011-01-18 MP3CD(1p)
All times are GMT -4. The time now is 09:30 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy