How to grep the particular string?


 
Thread Tools Search this Thread
Top Forums Programming How to grep the particular string?
# 1  
Old 07-18-2011
How to grep the particular string?

Hi,
I have one xml file. In that file, I have <name> and <description> . I need this name and description details alone and put it in one file.
Please find the example below:

<name>This is a file name</name>
<description>Latest Release 1.0.2.0</description>

The above tags are come in the xml file. So I need to create file which contains "This is a file name" and "Latest Release 1.0.2.0" alone.
Please suggest how to do it..


Thanks

Chella..
# 2  
Old 07-18-2011
sed is the tool for this:

Code:
sed -e 's/<name>\(.*\)<\/name>/\1/g' -e 's/<description>\(.*\)<\/description>/\1/g' file.xml > newfile.txt

This User Gave Thanks to jostber For This Post:
# 3  
Old 07-18-2011
For simple tasks, these may be fine.

But for more XML parsing, go for a scripting language.
# 4  
Old 07-18-2011
Thanks for your quick reply. Ya. I need this activity for multiple files... How can we implement this in script???

---------- Post updated at 06:09 PM ---------- Previous update was at 06:05 PM ----------

And , if i use the above command, i will get the entire xml file. Because in that file, i have some other details are tagged in that. Could you please advice me how to get only those two details???
# 5  
Old 07-18-2011
xmlint can do the job. Of course a high level scripting language like perl, python can do a much better job

Code:
$ cat a.xml
<?xml version="1.0"?>
<doc>
<name>
Doc Name
from a.xml
</name>
<description>
Doc Description
from a.xml
</description>
<others>
Other info
</others>
</doc>

$ name=`echo "xpath //name/text()" | xmllint --shell a.xml | sed -n 's/.*content= \(.*\)/\1/p'`

$ description=`echo "xpath //description/text()" | xmllint --shell a.xml | sed -n 's/.*content= \(.*\)/\1/p'`

$ echo $name
Doc Name from a.xml

$ echo $description 
Doc Description from a.xml

Just use a for loop to do for multiple files, I will leave this to you to finish off the rest of the script.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep a sub-string from a string stored in a variable.

For example: I am grepping "Hello" from a file and there are 10 matches. So all ten lines with match will get stored into a variable($match). Now I want to ignore those lines which have "Hi" present in that. Currently I tried this: match = grep "Hello" file | grep -v "Hi" file But that's not... (2 Replies)
Discussion started by: pavan
2 Replies

2. Shell Programming and Scripting

Grep a string and count following lines starting with another string

I have a large dataset with following structure; C 0001 Carbon D SAR001 methane D SAR002 ethane D SAR003 propane D SAR004 butane D SAR005 pentane C 0002 Hydrogen C 0003 Nitrogen C 0004 Oxygen D SAR011 ozone D SAR012 super oxide C 0005 Sulphur D SAR013... (3 Replies)
Discussion started by: Syeda Sumayya
3 Replies

3. Shell Programming and Scripting

Grep exact string from main string

Hi , am getting output file, it sontains the below values. ./hawk_DOM1_FIRST_ENV ./hawk_DOM2_SECOND_ENV ./hawk_DOM3_THIRD_ENV Now I need to grep the word "DOM1_FIRST_ENV","DOM2_SECOND_ENV" like that. I tired with cut -d "_". Its not working with any deleimiter. Can you please help to... (3 Replies)
Discussion started by: ckchelladurai
3 Replies

4. Shell Programming and Scripting

Grep string in files and list file names that contain the string

Hi, I have a list of zipped files. I want to grep for a string in all files and get a list of file names that contain the string. But without unzipping them before that, more like using something like gzcat. My OS is: SunOS test 5.10 Generic_142900-13 sun4u sparc SUNW,SPARC-Enterprise (8 Replies)
Discussion started by: apenkov
8 Replies

5. Shell Programming and Scripting

grep exact string from files and write to filename when string present in file

I am attempting to grep an exact string from a series of files within a directory and append that output to the filename when it is present in the file. I've been after this all day with no luck. Thanks for your help in advance :wall:. (4 Replies)
Discussion started by: JC_1
4 Replies

6. Shell Programming and Scripting

Grep a string from input file and delete next three lines including the line contains string in xml

Hi, 1_strings file contains $ cat 1_strings /home/$USER/Src /home/Valid /home/Review$ cat myxml <projected value="some string" path="/home/$USER/Src"> <input 1/> <estimate value/> <somestring/> </projected> <few more lines > <projected value="some string" path="/home/$USER/check">... (4 Replies)
Discussion started by: greet_sed
4 Replies

7. Shell Programming and Scripting

Grep a string and write a value to next line of found string

Hi, I have two variables x and y. i need to find a particular string in a file, a workflow name and then insert the values of x and y into the next lines of the workflow name. basically it is like as below wf_xxxxxx $$a= $$b= $$c= figo $$d=bentley i need to grep the 'wf_xxxx' and then... (6 Replies)
Discussion started by: angel12345
6 Replies

8. Shell Programming and Scripting

grep on string and printing line after until another string has been found

Hello Everyone, I just started scripting this week. I have no background in programming or scripting. I'm working on a script to grep for a variable in a log file Heres what the log file looks like. The x's are all random clutter xxxxxxxxxxxxxxxxxxxxx START: xxxxxxxxxxxx... (7 Replies)
Discussion started by: rxc23816
7 Replies

9. Shell Programming and Scripting

Grep for a string and then grep using a string from that result

Hello, Thanks in advance for the query. There is a log file abcd.log which has multible line like this. "hello1" , "hello2", "hello3" , "hello4" , "hello5" I want to grep for the lines which has "hello4" & "hello5" and use "hello2" to grep the same log file again. All these should... (8 Replies)
Discussion started by: kzenthil
8 Replies

10. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies
Login or Register to Ask a Question