Sed for select and retrieve data


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sed for select and retrieve data
# 1  
Old 08-23-2012
Sed for select and retrieve data

I would like to recover the data from 3 text tags.
These three markers are located between the tags specific location <tag1> and </tag1> knowing that they are in many places.

In File.txt:
Code:
<tag2>txt2</tag2>
<tag3>txt3</tag3>
<tag4>txt4</tag4>
 
....
<tag1>
 
<tag2>txt2</tag2>
<tag3>txt3</tag3>
<tag4>txt4</tag4>
 
</tag1>

What I did
Code:
T1=`cat file.txt | sed -en  '/<tag1>/,/<\/tag1>/s/<tag2>/,/<\/tag2>/g
T2=`cat file.txt | sed -en  '/<tag1>/,/<\/tag1>/s/<tag3>/,/<\/tag3>/g
T3=`cat file.txt | sed -en  '/<tag1>/,/<\/tag1>/s/<tag4>/,/<\/tag4>/g


But this does not.
Thanks for your help


Moderator's Comments:
Mod Comment Please use code tags next time for your code and data.

Last edited by zaxxon; 08-23-2012 at 10:43 AM.. Reason: code tags
# 2  
Old 08-23-2012
Code:
T1=$(sed -n '/<tag1>/,/<\/tag1>/{;/<tag2>/s/<[^>]*>//gp;}' file.txt)
T2=$(sed -n '/<tag1>/,/<\/tag1>/{;/<tag3>/s/<[^>]*>//gp;}' file.txt)
T3=$(sed -n '/<tag1>/,/<\/tag1>/{;/<tag4>/s/<[^>]*>//gp;}' file.txt)

# 3  
Old 08-23-2012
Maybe this helps:
Code:
$ awk '/^\<\/tag1\>/ {x=0} /^\<tag1\>/ {x=1; next} x && NF {gsub(/<[^>]*>/,""); print}' infile
txt2
txt3
txt4

Not sure if it works in other constellations of your file. I took <tag1> and </tag1> as flag to know which range is wanted.

Alternatively you can cycle through this with a for- or while-loop. xargs could also be an option, depending what the values are used for.
# 4  
Old 08-23-2012
Code:
sed -n '/\<tag1\>/,/\<\/tag1\>/s/.*\(txt[0-9]\).*/\1/p' file 
txt2
txt3
txt4

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare columns of two files and retrieve data

Hi guys, I need your help. I have two files: file1 1 3 5 file2 1,XX 2,AA 3,BB 4,CC 5,DD I would like to compare the first column and where they are equal to write that output in a new file: 1,XX 3,BB (7 Replies)
Discussion started by: apenkov
7 Replies

2. Shell Programming and Scripting

Unable to retrieve data from shell when connected to Oracle

I am trying to get the data from oracle table to a variable I have tried the below code #/usr/bin/sh echo " I am in correct loop" SPOOL_FILE=/app/scripts/alt.lst sqlplus /nolog <<END_SQL connect bindu/bindu@gis whenever sqlerror exit failure rollback;... (4 Replies)
Discussion started by: Kiransagar
4 Replies

3. UNIX for Dummies Questions & Answers

Retrieve data from Remote machine

Hello Please I ask if it is possible to recover data that is stored on a remote machine that I access via ssh on a usb ? if so, how? Thank you so much (5 Replies)
Discussion started by: chercheur857
5 Replies

4. Shell Programming and Scripting

Help to retrieve data from two files matching a string

Hello Experts, I have come back to this forum after a while now, since require a better way to get my result.. My query is as below.. I have 3 files -- 1 Input file, 2 Data files .. Based on the input file, data has to be retreived matching from two files which has one common key.. For EX:... (4 Replies)
Discussion started by: shaliniyadav
4 Replies

5. UNIX for Dummies Questions & Answers

How to compare two columns and retrieve data

I am a newbie to Unix and slowly learning it. I have a large data set with 8 different columns. I want to compare two columns and retrieve data if the two columns have similar number. I have attached the example. There are two columns (S-Contig and N-Contig). I want to retrieve the data from... (7 Replies)
Discussion started by: bjorngill
7 Replies

6. Shell Programming and Scripting

More time to retrieve data from DB

Hi All, It takes around one hour to retrieve 3 lakhs data from DB. I feel this can be still more reduced, please help me in improvising the below code, to get it retrieve faster, atleast 30 to 45 minutes. sqlplus -s ${OCAU_DB_UNAME}/${OCAU_DB_UPSWD}@${OCAU_DB_NAME} > /apps/data/filedata.txt... (4 Replies)
Discussion started by: pattamuthu
4 Replies

7. Shell Programming and Scripting

How to retrieve data using awk command

I have a txt file with below data (textfile1.txt) select col1, col2 from Schema_Name.Table_Name1 select * from Schema_Name.Table_Name2 select col1, col2, col3 from Schema_Name.Table_Name3 select col1 from Schema_Name.Table_Name4 My output should look like Table_Name1 Table_Name2... (5 Replies)
Discussion started by: prasad4004
5 Replies

8. UNIX for Advanced & Expert Users

Retrieve data and redirect to a file

How to write a shell script to retrieve datas from database after that this database are redirect to a excell sheet and then i got a mail that gives details about the database with the column name and data.. I m using oracle 9i... Thanks, Anup Das (2 Replies)
Discussion started by: anupdas
2 Replies

9. Shell Programming and Scripting

retrieve what the currently selected item is in a dropdown select list using perl tk

I have a dropdown menu built in perl tk (I am using active state perl). I want to select a value from the dropdown menu and I want to be able to perform some other actions depending upon what value is selected. I have all the graphical part made but I dont know how to get the selected value. Any... (0 Replies)
Discussion started by: lassimanji
0 Replies

10. Shell Programming and Scripting

Retrieve data from a file

Hello guys I want to retrieve two data from a file, like this: bash-2.03$ cat numtest 123456 123457 bash-2.03$ more ./test_num #!/bin/bash num1= num2= cnt=1 while read x do num${cnt}=$x cnt=$(($cnt+1)) done <$1 echo $num1 "\n" $num2 But when i executed this script, error... (2 Replies)
Discussion started by: tpltp
2 Replies
Login or Register to Ask a Question