How to grep for a word in xml?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to grep for a word in xml?
# 1  
Old 05-23-2016
How to grep for a word in xml?

Hi,

I have the below tag/s in my xml.

Code:
<foreign-server name="MOHTASHIM_SERVER">

What will be the easist way to extract MOHTASHIM_SERVER without the double quotes "" from the above tag?

Desired Output:
Quote:
MOHTASHIM_SERVER
# 2  
Old 05-23-2016
Hello mohtashims,

Could you please try following and let me know if this helps.
Code:
awk '{match($0,/\".*\"/);print substr($0,RSTART+1,RLENGTH-2)}'  Input_file

Thanks,
R. Singh
# 3  
Old 05-23-2016
Quote:
Originally Posted by RavinderSingh13
Hello mohtashims,

Could you please try following and let me know if this helps.
Code:
awk '{match($0,/\".*\"/);print substr($0,RSTART+1,RLENGTH-2)}'  Input_file

Thanks,
R. Singh
I need to get the value only for <foreign-server name=

while your suggestion looks like populates all double quotes.

Can you please check ?
# 4  
Old 05-23-2016
Hello mohtashims,

Could you please try following and let me know if this helps you.
Code:
awk '{LEN=length("<foreign-server name=");match($0,/<foreign-server name=\".*\"/);print substr($0,RSTART+LEN+1,RLENGTH-LEN-2)}'  Input_file

Thanks,
R. Singh
# 5  
Old 05-23-2016
Hi.

R. Singh's solution seemed to work for me:
Code:
echo '<foreign-server name="MOHTASHIM_SERVER">' |
awk '{match($0,/\".*\"/);print substr($0,RSTART+1,RLENGTH-2)}'

produced:
Code:
MOHTASHIM_SERVER

on a system:
Code:
OS, ker|rel, machine: Linux, 3.16.0-4-amd64, x86_64
Distribution        : Debian 8.4 (jessie) 
awk GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.2-p3, GNU MP 6.0.0)

Best wishes ... cheers, drl
# 6  
Old 05-23-2016
Quote:
Originally Posted by RavinderSingh13
Hello mohtashims,

Could you please try following and let me know if this helps you.
Code:
awk '{LEN=length("<foreign-server name=");match($0,/<foreign-server name=\".*\"/);print substr($0,RSTART+LEN+1,RLENGTH-LEN-2)}'  Input_file

Thanks,
R. Singh
I will only be able to test this sometime later and update this thread.

---------- Post updated at 11:29 AM ---------- Previous update was at 07:17 AM ----------

It works but the output is several blank lines are before and after the output while i just needed the output with no white spaces above or below.

Desired Output:
Quote:
MQ_Server
Current Output:
Quote:


MQ_Server




# 7  
Old 05-23-2016
Hello mohtashims,

Could you please try following and let me know how it goes then.
Code:
awk '{LEN=length("<foreign-server name=");match($0,/<foreign-server name=\".*\"/);VAL=substr($0,RSTART+LEN+1,RLENGTH-LEN-2);if(VAL){print VAL}}'  Input_file

Thanks,
R. Singh
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep for a word or word with underscore

I have a file "test" with following contents: cat test abc abcd_efg abc_abc I want to only grep for abc or abc_ without getting other results, how do I achieve this? If I use grep -w abc test option I get only abc and not abc_. If I use egrep "abc|abc_" test its still printing... (3 Replies)
Discussion started by: ctrld
3 Replies

2. Shell Programming and Scripting

Replacing a particular word with another word in all the xml's under a particular directory with sed

Hi Folks, Could you please advise what will be the SED command to replace a word in all xml's under a particular directory for example let say I rite now at the following below location $ cd /ter/rap/config now under config directory there will be lots of xml file , now my objective is to... (1 Reply)
Discussion started by: punpun66
1 Replies

3. Shell Programming and Scripting

Need a word which just comes next to after grep of a specific word

Hi, Below is an example : ST1 PREF: int1 AVAIL: int2 ST2 PREF :int1 AVAIL: int2 I need int1 to come in preferred variable while programming and int2 in available variable Please help me doing so Best regards, Vishal (10 Replies)
Discussion started by: Vishal_dba
10 Replies

4. Shell Programming and Scripting

Extract part of word from XML

Hi All, Can Someone help me in capturing a word from xml Using sed or awk or any other way in unix. i have file abc.xml like this <?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> - <NREC xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <HEADER> <SOURCE>MAIL</SOURCE>... (5 Replies)
Discussion started by: naveenkumarc
5 Replies

5. Shell Programming and Scripting

How ti Grep for a word and print the next word

Hi can we grep for a word and print the next word of the greped word? ex:- create or replace function function_name create function function_name we should search for word "function" and output next word "function_name" from both lines. (3 Replies)
Discussion started by: manasa_vs
3 Replies

6. Shell Programming and Scripting

grep part of word or Another word from a string

Hi all, FileOne family balance >>>>> 0 0 0 0 java.io.FileNotFoundException: Settings.xml (No such file or directory) at java.io.FileInputStream.open(Native Method) .. .... ..... ..... java.lang.NullPointerException ... ..... ...... Stacktrace: at... (2 Replies)
Discussion started by: linuxadmin
2 Replies

7. Shell Programming and Scripting

How to grep a word and next column to that word?

Hi, I have input file as below. Can you help me? inac_4y;0;2;Balance;200;1;1; 0;2;Balance;100;1; 0;inac_nq;0;1;Balance;100;1 desired output Balance;200 Balance;100 Balance;100 -Suresh Please use and tags when posting code, data or logs etc. to preserve formatting... (5 Replies)
Discussion started by: suresh3566
5 Replies

8. Shell Programming and Scripting

Grep out specific word and only that word

ok, so this is proving to be kind of difficult even though it should not be. say for instance I want to grep out ONLY the word fkafal from the below output, how do I do it? echo ajfjf fjfjf iafjga fkafal foeref afoafahfia | grep -w "fkafal" If i run the above command, i get back all the... (4 Replies)
Discussion started by: SkySmart
4 Replies

9. UNIX for Dummies Questions & Answers

how to grep the word and display only the second word from it

hi, consider the below line in a text file, 'Y',getdate(),'N','V',NULL ..... 'N',getdate(),'Y','D',NULL ..... 'Y','N','Y',getdate(),'Y','D',NULL .... as u see above, i want only the second word after the getdate() word... getdate() will not come 2nd word alwys it may be any position but i... (11 Replies)
Discussion started by: prsam
11 Replies

10. UNIX for Dummies Questions & Answers

how to grep for a word and display only the word

Hi, When we "grep" for a word in a file, it returns the lines containing the word that we searched for. Is there a way to display only the words and not the entire line containing them. Thanks Ananth (6 Replies)
Discussion started by: ananthmm
6 Replies
Login or Register to Ask a Question