Extract "Name" from this syntax.....


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract "Name" from this syntax.....
# 1  
Old 04-16-2010
Bug Extract "Name" from this syntax.....

Hello Folks

HTML Code:
      <Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="JVM1" ServerIOTimeout="0" WaitForContinue="false">
         <Transport Hostname="<HOST_NAME>" Port="9365" Protocol="http"/>
         <Transport Hostname="<HOST_NAME>" Port="9565" Protocol="https">
            <Property Name="keyring" Value="<WAS_HOME>/plugin-key.kdb"/>
            <Property Name="stashfile" Value="<WAS_HOME>/plugin-key.sth"/>
         </Transport>
      </Server>
If the port number is known,how can i get the "Name=JVM1' from above syntax?

Above lines are a part of an xml file...say 'abc.xml'.

Regards
Abhi
# 2  
Old 04-16-2010
Something like this:

Code:
 
awk -v port="9365" '$0 ~ port { print c;next } {c=$0;next }'  inputfile | sed 's/.*\(Name=.*\)S.*/\1/'

Using only awk , assuming that the position on the Name=.. will be same in the all the lines.

Code:
awk -v port="9365" '$0 ~ port { print a[5];next } {split($0,a," ");next }' inputfile

# 3  
Old 04-16-2010
The shell variable p contains the port number (and nothing else):
Code:
sed -n '/ Port="'$p'"/{g;p;q;}; /.*<Server .* Name="\([^"]*\).*/{s//\1/;h;}'

# 4  
Old 04-18-2010
Code:
grep -B2 "9365" | awk ' /Server/ {print $5}'


Last edited by itkamaraj; 04-18-2010 at 08:42 AM..
# 5  
Old 04-19-2010
Bug

Guys

Can you show me how your syntaxes are working on your system ?

'awk' is throwing me syntax error and 'sed' is not returning anything....

Regards
Abhi
# 6  
Old 04-19-2010
Quote:
Originally Posted by ak835
Can you show me how your syntaxes are working on your system ?
Here is the test for alister's sed and my awk Smilie
Code:
# p=9565
# sed -n '/ Port="'$p'"/{g;p;q;}; /.*<Server .* Name="\([^"]*\).*/{s//\1/;h;}' file
JVM1
# awk -F\" '/<Server/{n=$8}/Port/&& $4 ~ port{print n,$4}' port=9565 file
JVM1 9565
JVM2 9565
# cat file
      <Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="JVM1" ServerIOTimeout="0" WaitForContinue="false">
         <Transport Hostname="<HOST_NAME>" Port="9365" Protocol="http"/>
         <Transport Hostname="<HOST_NAME>" Port="9565" Protocol="https">
            <Property Name="keyring" Value="<WAS_HOME>/plugin-key.kdb"/>
            <Property Name="stashfile" Value="<WAS_HOME>/plugin-key.sth"/>
         </Transport>
      </Server>
      <Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="JVM2" ServerIOTimeout="0" WaitForContinue="false">
         <Transport Hostname="<HOST_NAME>" Port="9365" Protocol="http"/>
         <Transport Hostname="<HOST_NAME>" Port="9565" Protocol="https">
            <Property Name="keyring" Value="<WAS_HOME>/plugin-key.kdb"/>
            <Property Name="stashfile" Value="<WAS_HOME>/plugin-key.sth"/>
         </Transport>
      </Server>

If you can not run the code please post you system OS & shell used.
# 7  
Old 04-19-2010
Bug

Code:
bash-3.00$ cat name.xml
<Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="JVM1" ServerIOTimeout="0" WaitForContinue="false">
        <Transport Hostname="<HOST_NAME>" Port="9365" Protocol="http"/>
        <Transport Hostname="<HOST_NAME>" Port="9565" Protocol="https">
                <Property Name="keyring" Value="<WAS_HOME>/plugin-key.kdb"/>
                <Property Name="stashfile" Value="<WAS_HOME>/plugin-key.sth"/>
        </Transport>
</Server>
bash-3.00$ p=9565
bash-3.00$ sed -n '/ Port="'$p'"/{g;p;q;}; /.*<Server .* Name="\([^"]*\).*/{s//\1/;h;}' name.xml

bash-3.00$ awk -F\" '/<Server/{n=$8}/Port/&& $4 ~ port{print n,$4}' port=9565 name.xml
awk: syntax error near line 1
awk: bailing out near line 1
bash-3.00$ awk -F\" '/<Server/{n=$8}/Port/&& $4 ~ port{print n,$4}' Port=9565 name.xml
awk: syntax error near line 1
awk: bailing out near line 1
bash-3.00$ cat name.xml |  awk -F\" '/<Server/{n=$8}/Port/&& $4 ~ port{print n,$4}'
awk: syntax error near line 1
awk: bailing out near line 1

O.S is Solaris 10.


I guess i need to provide actual xml file here.File format might be issue here.


Regards
Abhi

Last edited by ak835; 04-19-2010 at 09:34 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Beginners Questions & Answers

Extract delta records using with "comm" and "sort" commands combination

Hi All, I have 2 pipe delimited files viz., file_old and file_new. I'm trying to compare these 2 files, and extract all the different rows between them into a new_file. comm -3 < sort file_old < sort file_new > new_file I am getting the below error: -ksh: sort: cannot open But if I do... (7 Replies)
Discussion started by: njny
7 Replies

4. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

5. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

6. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question