search a word in a xml file and print the out put


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting search a word in a xml file and print the out put
# 1  
Old 06-30-2009
search a word in a xml file and print the out put

hi ,
i m having a html file and this file looks like this
Code:
 <ssl>
      <name>PIA</name>
      <enabled>true</enabled>
      <listen-port>39370</listen-port>
    </ssl>
    <log>
      <name>PIA</name>
    </log>
    <execute-queue>
      <name>weblogic.kernel.Default</name>
      <thread-count>50</thread-count>
    </execute-queue>
    <listen-port>37390</listen-port>

i need to search only listen -port and i need to take a value from here i.e 39370,37390

thanks in advance

with regards ,
ram

Last edited by Yogesh Sawant; 07-01-2009 at 04:32 AM.. Reason: added code tags
# 2  
Old 07-01-2009
you can try something like this:

Code:
awk 'BEGIN { FS=" "; OFS=" " }
 
{
 
        if ( $0 ~ /<listen-port>/  &&  $0 ~ /<\/listen-port>/ ){
                # <listen-port>39370</listen-port>
                split($0,A,"\\076")
 
                # 39370</listen-port>
                split(A[2],LP,"\\074")
 
                listen_port=LP[1]
                printf("listen port is  %s\n",listen_port)
        }
 
}
 END {
 
 }' xmlfile

# 3  
Old 07-01-2009
even below may help you some. But if it is well-formatted XML, suggest you t o use XML parser in Perl to handler this kind of issue.


Code:
sed -n '/<listen-port>/{s/<listen-port>\(.*\)<\/listen-port>/\1/;p;}' yourfile

# 4  
Old 07-01-2009
Try this in perl!

You can try this in perl!

Code:
#!/usr/local/bin/perl
open( INPUT_FILE, "$ARGV[0]" ) || die "Cannot open input file $ARGV[0]\n";
while ($line = <INPUT_FILE>)
        {
                chop $line;
                @base=split(/\>/,$line);
                $base[0] =~ s/[\<]*//;
                $LengthOfTag=length($base[0]);
                $TotalLength=length($line);
                $FinalLength=$TotalLength - $LengthOfTag - $LengthOfTag - 5;
                $val=substr($line,$LengthOfTag+2,$FinalLength);
                if ( $base[0] eq "listen-port" )
                {
                        print "$val\n";
                }
        }
close(INPUT_FILE);


Last edited by Yogesh Sawant; 07-01-2009 at 04:31 AM.. Reason: added code tags
# 5  
Old 07-01-2009
grep '<listen-port>' filename | cut -d '>' -f2 | cut -d '<' -f1
# 6  
Old 07-01-2009
GNU awk
Code:
awk 'BEGIN{ RS="</listen-port>"}{gsub(/.*<listen-port>/,"")}1' file

# 7  
Old 07-01-2009
hi ,
thanxs all ... its working but i m getting out put like this and i m concatenating with a file

THE DOMAIN NAME VPORCL01 FOR THE HOST NAME Ram-PC
domain_type = Web
39370
37390

THE DOMAIN NAME VPORCL01 FOR THE HOST NAME Ram-pc
domain_type = Web
39370
37390

THE DOMAIN NAME VPORCL01 FOR THE HOSTNAME Ram-pc
domain_type = Web
39370
37390
this file is dynamic file it ll generate any number out put like this , but final output should be this format
DOMAIN NAME HOSTNAME domain_type port1 port2
VPORCL01 Ram-pc Web 39370 37390
VPORCL01 Ram-pc Web 39370 37390
VPORCL01 Ram-pc Web 39370 37390
VPORCL01 Ram-pc Web 39370 37390
so on based on the file input it should generate output

thanxs in advance

Last edited by becksram123; 07-01-2009 at 10:35 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search and replace the string with new word using xml tags

Hi All i need to replace the url1 inside <remote> tag in below xml in first instance and in the second instance with url2. any help appreciated <locations> <hudson.scm.SubversionSCM_-ModuleLocation> <remote>https://svn2015.com/svn/repos/internalshard</remote> ... (4 Replies)
Discussion started by: madankumar.t@hp
4 Replies

2. Shell Programming and Scripting

Search for a specific word and print only the word from the input file

Hi, I have a sample file as shown below, I am looking for sed or any command which prints the complete word only from the input file. Ex: $ cat "sample.log" I am searching for a word which is present in this file We can do a pattern search using grep but I need to cut only the word which... (1 Reply)
Discussion started by: mohan_kumarcs
1 Replies

3. Shell Programming and Scripting

[Solved] Search for a word and print the next word

Hi, I am trying to search for a word and print the next word. For example: My text is "<TRANSFORMATION TYPE ="Lookup Procedure">" I am searching for "TYPE" and trying to print ="Lookup Procedure" I have written a code like following: echo $line | nawk... (4 Replies)
Discussion started by: sampoorna
4 Replies

4. Shell Programming and Scripting

Search string in unix and print whole matching word

Hi I have requirement to search string starting with specific characters and print whole matching word in that string. example mystr="ATTRIBUTE NAME="Event Name" VALUE="Execute"" I want to search by passing "NAME=" and result should be NAME="Event Name". i am using below command but... (3 Replies)
Discussion started by: tmalik79
3 Replies

5. UNIX for Dummies Questions & Answers

Script to search for a particular word in files and print the word and path name

Hi, i am new to unix shell scripting and i need a script which would search for a particular word in all the files present in a directory. The output should have the word and file path name. For example: "word" "path name". Thanks for the reply in adv,:) (3 Replies)
Discussion started by: virtual_45
3 Replies

6. Shell Programming and Scripting

search-word-print-specific-string

Hi, Our input xml looks like: <doc> <str name="account_id">1111</str> <str name="prd_id">DHEP155EK</str> </doc> - <doc> <str name="account_id">6666</str> <str name="prd_id">394531662</str> </doc> - <doc> <str name="account_id">6666</str> <str... (1 Reply)
Discussion started by: Jassz
1 Replies

7. Shell Programming and Scripting

search a word and print specific string using awk

Hi, I have list of directory paths in a variable and i want to delete those dirs and if dir does not exist then search that string and get the correct path from xml file after that delete the correct directory. i tried to use grep and it prints the entire line from the search.once i get the entire... (7 Replies)
Discussion started by: dragon.1431
7 Replies

8. Shell Programming and Scripting

How to put a word starting at particular position in a file using shell scripting

Hi all, I'm new to shell scripting and hence this query. I have 2 files. temp.txt and config.txt. The values in temp.txt are tab separated. ex: temp.txt AB CDE GHIJ OPQRS WXY ex:config.txt (1st line for 1st element of temp.txt and so on) start = '1' end='5' start = '6' end =... (26 Replies)
Discussion started by: subhrap.das
26 Replies

9. Shell Programming and Scripting

Search for word in a xml file and replace it with something else

Hello Unix Users, I am very new to Unix so I am not sure how do I do the following. I need a script such that when I type the following in the command prompt > . scriptName.sh wordToBeReplaced DirectoryLocation will find the word someword located in a somefile.xml in DirectoryLocation... (8 Replies)
Discussion started by: 5211171
8 Replies

10. Shell Programming and Scripting

Search word in a line and print earlier pattern match

Hi All, I have almost 1000+ files and I want to search specific pattern. Looking forwarded your input. Search for: word1.word2 (Which procedure contain this word, I need procedure name in output. Expected output: procedure test1 procedure test2 procedure test3 procedure test4 ... (7 Replies)
Discussion started by: susau_79
7 Replies
Login or Register to Ask a Question