Sponsored Content
Top Forums Shell Programming and Scripting Trying to pull a variable out of an xml file... Post 302583576 by agama on Tuesday 20th of December 2011 07:29:54 PM
Old 12-20-2011
This will parse your document and populate a shell array, provided the number of unique "names" isn't larger than the shell will support. It does make the assumption that <playlist> and </playlist> tags do not have a newline between them.

Code:
IFS=, playlists=( $(awk '
    /<playlist>/ {
        gsub( "</playlist>.*", "", $0 );   # strip everything before and after
        gsub( ".*<playlist>", "", $0 );
        n = split( $0, a, "," );             # split each name and make unique
        for( i = 1; i <= n; i++ )
            seen[a[i]] = 1;
    }

    END {
        for( x in seen )               # print the list of unique "names"
            printf( "%s,", x );
        printf( "\n" );
    }
' file.xml  ) )

You can access the list with [icode]${playlists[$i]}[/code], here is a sample loop that just prints them out:

Code:
i=0
while (( $i < ${#playlists[@]} ))
do
    echo "$i ${playlists[$i]}"
    i=$(( i + 1 ))
done

If you don't want to collect them in an array, you can read the awk output in a while loop:

Code:
awl '... above programme ' file.xml | while read name
do
   echo "$name"  # or other real work
done

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

pull xml's from logs

Hi Frnds I Want to pull xml's from logs based on the below condition.In each log having so many xml's it's taking so much of time to search all logs manually...can u please provide solution USER:ECMINT CONV:GETARPLNICHUBTST <CardNbr>376703134104004</CardNbr> </Envelope> Response XML:... (3 Replies)
Discussion started by: pb18798
3 Replies

2. Programming

Accessing environmet variable in xml file

Hi I have certain environmenet variables defined in .profile: export DBNAME="mydb" export DBHOST="devbox.us.abc.com" export DBPORT="1111" export PASSWORD="mypwd" export MMUSER="myid" I also have an xml file defined like: <CONFIG> <DEFAULTS operator="oraread"> <PROPERTY... (2 Replies)
Discussion started by: neeto
2 Replies

3. Shell Programming and Scripting

How do I pull a substring out of a file?

I'm new to shell scripting and am trying to write a small script that pulls a substring out of a file that has a few lines of text in it. The file will eventually have a lot of text, I just put a few lines in it for testing purposes. Anyway, this is what I have so far... #!/bin/ksh ... (4 Replies)
Discussion started by: enator45
4 Replies

4. Shell Programming and Scripting

How pull the Data from the file and should be mailed

Hi All, I need to pull the data from a file from 2 set of directories & should be mailed. I have a code , it is failing for some reason. Do somebody correct me where my script is going wrong. Directories: 1st Set of Directory /176_PS/Transactions/**/syslog.log ** : prd1 prd2... (2 Replies)
Discussion started by: raghunsi
2 Replies

5. Shell Programming and Scripting

parsing data from xml file is failing can't open variable

Created a korn shell script, everything is is working except this section, the variable $SYSINFO is being set, but the NASIP & NASDEV are failing, it appears to be treating the config.xml file config directory and xml as the file. Need a second set of eyes to tell me where I am messing up. #... (3 Replies)
Discussion started by: juanb25
3 Replies

6. Shell Programming and Scripting

wish to use shell variable in xml file, is it possible?

greetings, i have an executable that reads its config from an xml file. this executable needs to be started as the current user. there is a line in the xml file that contains the following: <option name="USER_ID" value="myuserid"/>the current value is an actual user id (mine) as it was... (3 Replies)
Discussion started by: crimso
3 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

Help required in Splitting a xml file into multiple and appending it in another .xml file

HI All, I have to split a xml file into multiple xml files and append it in another .xml file. for example below is a sample xml and using shell script i have to split it into three xml files and append all the three xmls in a .xml file. Can some one help plz. eg: <?xml version="1.0"?>... (4 Replies)
Discussion started by: ganesan kulasek
4 Replies

9. Shell Programming and Scripting

Insert value of env variable in xml file

Hello, I have the following variables set in my env echo $MY_XSD_FILE /home/jak/sample.xsd echo $MY_INTERVAL_VALUE 4 I want to insert them between the xml tags in my xml file cat sample.xml ::::::::::::::: ::::::::::::::: <property name="FILE"></property> :::::::::::::::::::::::... (2 Replies)
Discussion started by: jakSun8
2 Replies

10. UNIX for Beginners Questions & Answers

How to pull multiple XML tags from the same XML file in Shell.?

I'm searching for the names of a TV show in the XML file I've attached at the end of this post. What I'm trying to do now is pull out/list the data from each of the <SeriesName> tags throughout the document. Currently, I'm only able to get data the first instance of that XML field using the... (9 Replies)
Discussion started by: hungryd
9 Replies
smd-loop(1)						 Sync Mail Dir (smd) documentation					       smd-loop(1)

NAME
smd-loop - iterates smd-pull and smd-push SYNOPSIS
smd-loop [-vt] DESCRIPTION
smd-loop runs smd-push and smd-pull at regular intervals as defined by the user in the ~/.smd/loop configuration file. On errors that are reported to be transient, it retries a second time before failing. The configuration file is line-oriented. Each line is composed of three space separated fields: pull-frequency, push-frequency and end- point-name. Frequencies are expressed in minutes, while endpoint name is a valid name for smd-pull(1) and smd-push(1). Lines beginning with # are considered as comments. The following example calls the command smd-pull default every 3 minutes, and smd-push default every 10. Example: # pull-frequency push-frequency endpoint-name 3 10 default OPTIONS
-v Increase program verbosity (printed on stderr) -t Just create a template configuration file if none FILES
~/.smd/loop SEE ALSO
mddiff(1), smd-server(1), smd-client(1), smd-push(1), smd-pull(1) AUTHOR
Enrico Tassi <gares@fettunta.org> 11 June 2012 smd-loop(1)
All times are GMT -4. The time now is 10:52 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy