Visit Our UNIX and Linux User Community


Extract specific data content from a long list of data


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extract specific data content from a long list of data
# 1  
Old 12-09-2009
Extract specific data content from a long list of data

My input:
Code:
Data name: ABC001
Data length: 1000
Detail info
Data Direction Start_time End_time Length
1 forward 10 100 90       
1 forward 15 200 185
2 reverse 50 500 450

Data name: XFG110
Data length: 100
Detail info
Data Direction Start_time End_time Length
1 forward 50 100 50       
2 reverse 50 90 40

Data name: ABC010
Data length: 200
Detail info
Data Direction Start_time End_time Length
1 forward 150 190 40       
.
.
.

My output:
Code:
ABC001 10 100
ABC001 15 200
ABC001 50 500

XFG110 50 100
XFG110 50 90

ABC010 150 190
.
.
.

Based on individual Data name, I would like extract its Start_time and End_time detail and put it at the column 2 and 3, respectively.
Thanks for any suggestion or hit to archive this goal.

Last edited by patrick87; 12-09-2009 at 05:23 AM.. Reason: code tags!
# 2  
Old 12-09-2009
Wrench

If i'n reading your requiremenst right....one way:

Code:
#  awk '/Data name/{print"";t=$3}/forward/||/reverse/{print t,$3,$4}' infile

ABC001 10 100
ABC001 15 200
ABC001 50 500

XFG110 50 100
XFG110 50 90

ABC010 150 190

HTH
# 3  
Old 12-09-2009
Try:

Code:
awk '{ if($0 ~ /^Data name:/) str=$3; if($0 ~ /^[0-9]/) print str" "$3" "$4; }' file

# 4  
Old 12-09-2009
Code:
while read -r line
do
    case "$line" in
        "Data name"* )
            dname=${line#*: }
            ;;
        *forward*|*reverse* )
            set -- $line
            echo $dname $3 $4
    esac
done <"file"

# 5  
Old 12-09-2009
Thanks a lot, Tytalus.
Your awk code worked perfectly and very fast for my case Smilie
I just check it along all my long list of data.
I found out something like this happen if my input data is shown like this:
My input
Code:
Data name: LCM50
Data length: 100
Detail info
Data Direction Start_time End_time Length
1 reverse 10 20 10       
2 reverse 50 90 40

Data name: BCD011
Data length: 1000
Detail info
Data Direction Start_time End_time Length

Data name: FGG010
Data length: 500
Detail info
Data Direction Start_time End_time Length
1 reverse 10 190 180

My desired output:
Code:
LCM50 10 20
LCM50 50 90

FGG010 10 190

Problem facing by the awk code given this output:
Code:
LCM50 10 20
LCM50 50 90


FGG010 10 190

Do you know how to archive the desired output by ignoring those data that got Data name, but don't have Start_time and End_time?
Thanks, Tytalus.

---------- Post updated at 05:18 AM ---------- Previous update was at 05:15 AM ----------

Hi, dennis.jacob.
I just try your code. It is worked nice as well.
Just it can't add a newline between two different Data name Smilie
Thanks for your any advice and suggestion.

---------- Post updated at 05:22 AM ---------- Previous update was at 05:18 AM ----------

Thanks a lot too, ghostdog74.
Your code can work as well.
Just it also unable to add a new line between two different Data name detail Smilie
From your opinion, is it ok to archive my target by running your code first , then take the output file and let it add new lane in between two different data name after then?
Thanks for advice.
# 6  
Old 12-09-2009
if you want to add a newline, just do printf with \n. i will leave it to you to do that.
# 7  
Old 12-09-2009
Thanks a lot, ghostdog74.
I get it already Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #558
Difficulty: Medium
The term bug was popularized by Grace Hopper in 1947 while working on a Mark II Computer at a US Navy research lab when a moth was stuck in the computer.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How-To Extract specific data from a file.

data.txt has several information like the below.. <SERVER>:WEB:MYDOM01:/tmp/cong/MYDOM01,/tmp/app/MYDOM01 <WEBER>:CANES:https-web01,https-web02:/web/apps/https-web01/config <SERVER>:WEB:MYDOM07:/tmp/cong/MYDOM07,/tmp/app/MYDOM07... (7 Replies)
Discussion started by: mohtashims
7 Replies

2. Shell Programming and Scripting

How to extract specific data?

Bash scripting beginner here... I have many folders, each folder representing one subject. Not all subjects have all the required files, so I need to somehow cycle through all the data and then extract the data only from subjects who have no files missing. I tried to output the ls command, but... (4 Replies)
Discussion started by: LeftoverStew
4 Replies

3. HP-UX

How to extract data for a specific process from ovpa?

Hi Friends, One question. Supposed I want to extract data only for process named "sqlplus" how can I do it. Any suggestions? I don't want all the data as it is not useful to me e.g.. Command I use is given below extract -xp -p -r repfile -b"03/15/13 7:00 PM" -e"03/15/13 09:30 PM" -f... (1 Reply)
Discussion started by: kunwar
1 Replies

4. Shell Programming and Scripting

Extract specific data and change its arrangment

Input: HS04636 PROGRAM source 836 7001 + ID=g1 HS04636 PROGRAM beginner 836 7001 + ID=g1.t1;Parent=g1 HS04636 PROGRAM position 836 836 + Parent=g1.t1 HS04636 PROGRAM type 836 1017 + Parent=g1.t1 HS04636 ... (2 Replies)
Discussion started by: patrick87
2 Replies

5. Shell Programming and Scripting

Extract specific content from data and rename its header problem asking

Input file 1: >pattern_5 GAATTCGTTCATGTAGGTTGASDASFGDSGRTYRYGHDGSDFGSDGGDSGSDGSDFGSDF ATTTAATTATGATTCATACGTCATATGTTATTATTCAATCGTATAAAATTATGTGACCTT SDFSDGSDFKSDAFLKJASLFJASKLFSJAKJFHASJKFHASJKFHASJKFHSJAKFHAW >pattern_1 AAGTCTTAAGATATCACCGTCGATTAGGTTTATACAGCTTTTGTGTTATTTAAATTTGAC... (10 Replies)
Discussion started by: patrick87
10 Replies

6. Shell Programming and Scripting

Extract specific read from a data

Input file: #abc_1 SAASFASFGGDSGDSGDSGSDGSDGSDGSDGSDGSDGSDGDS Output file: FASFGGDSGDS I just want to print out the read from position 5 until position 15 from the data. Below is the code that I just try but it is failed to get my desired output: grep -v '#' input_file | awk... (5 Replies)
Discussion started by: patrick87
5 Replies

7. Shell Programming and Scripting

Extract data based on match against one column data from a long list data

My input file: data_5 Ali 422 2.00E-45 102/253 140/253 24 data_3 Abu 202 60.00E-45 12/23 140/23 28 data_1 Ahmad 256 7.00E-45 120/235 140/235 22 data_4 Aman 365 8.00E-45 15/65 140/65 20 data_10 Jones 869 9.00E-45 65/253 140/253 18... (12 Replies)
Discussion started by: patrick87
12 Replies

8. Shell Programming and Scripting

Extract all the content after a specific data

My input: >seq_1 DSASSTRRARRRRTPRTPSLRSRRSDVTCS >seq_3 RMRLRRWRKSCSERS*RRSN >seq_8 RTTGLSERPRLPTTASRSISSRWTR >seq_10 NELPLEKGSLDSISIE >seq_9 PNQGDAREPQAHLPRRQGPRDRPLQAYA+ QVQHRRHDHSRTQH*LCRRRQREDCDRLHR >seq_4 DRGKGQAGCRRPQEGEALVRRCS>seq_6 FA*GLAAQDGEA*SGRG My output: Extract all... (22 Replies)
Discussion started by: patrick87
22 Replies

9. Shell Programming and Scripting

Shell script or command help to extract specific contents from a long list of content

Hi, I got a long list of contents: >sequence_1 ASSSSSSSSSSSDDDDDDDDDDDCCCCCCC ASDSFDFFDFDFFWERERERERFSDFESFSFD >sequence_2 ASDFDFDFFDDFFDFDSFDSFDFSDFSDFDSFASDSADSADASD ASDFFDFDFASFASFASFAFSFFSDASFASFASFAFS >sequence_3 VEDFGSDGSDGSDGSDGSDGSDGSDG dDFSDFSDFSDFSDFSDFSDFSDFSDF... (2 Replies)
Discussion started by: patrick87
2 Replies

10. Shell Programming and Scripting

Extract data into file with specific field specs

:confused: I have a tab delimited file that I need to extract data from and into a file with specific field specs. Each field has to be a certain amount of characters. So, the name field (from delimited file) might have only 15 characters but needs to be 25 (in new file) so I need to insert spaces... (5 Replies)
Discussion started by: criddel
5 Replies

Featured Tech Videos