Retrieve many entries using awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Retrieve many entries using awk
# 8  
Old 12-11-2012
Try this:
Code:
awk 'BEGIN {cnt = split ("# Drug_Target_.*_Gene_Name|# Brand_Name|# Generic_Name|# Drug_Type|# Indication|# Mechanism_Of_Action", SA, "|")}
     {for (i=1; i<=cnt; i++) if (match ($1, SA[i])) Out[i]=$2}
     END {for (i=1; i<=cnt; i++) printf "%-28s", SA[i];  printf "\n";
          for (i=1; i<=cnt; i++) printf "%-28s", Out[i]; printf "\n" }
    ' FS="\n" RS="\n\n" /tmp/Input\ file.txt 
# Drug_Target_.*_Gene_Name  # Brand_Name                # Generic_Name              # Drug_Type                 # Indication                # Mechanism_Of_Action       
F2                          Refludan                    Lepirudin                   Approved                    For the treatment of heparin-induced thrombocytopeniaLepirudin form

# 9  
Old 12-12-2012
Hi

Thanks for reply.

Above command is giving me only one line output rom my big input file and it's like this:

Code:
bash-3.2$ awk 'BEGIN {cnt = split ("# Drug_Target_.*_Gene_Name|# Brand_Name|# Generic_Name|# Drug_Type|# Indication|# Mechanism_Of_Action", SA, "|")}
>      {for (i=1; i<=cnt; i++) if (match ($1, SA[i])) Out[i]=$2}
>      END {for (i=1; i<=cnt; i++) printf "%-28s", SA[i];  printf "\n";
>           for (i=1; i<=cnt; i++) printf "%-28s", Out[i]; printf "\n" }
>     ' FS="\n" RS="\n\n" drugbank.txt
# Drug_Target_.*_Gene_Name  # Brand_Name                # Generic_Name              # Drug_Type                 # Indication                # Mechanism_Of_Action       
CFTR                        Kalydeco                    Ivacaftor                   Approved                    For the treatment of cystic fibrosis (CF) in patients age 6 years and older who have a G551D mutation in the CFTR gene.Cystic fibrosis is caused by any one of several defects in a protein, cystic fibrosis transmembrane conductance regulator, which regulates fluid flow within cells and affects the components of sweat, digestive fluids, and mucus. The defect, which is caused by a mutation in the individual's DNA, can be in any of several locations along the protein, each of which interferes with a different function of the protein. One mutation, G551D, lets the CFTR protein reach the epithelial cell surface, but doesn't let it transport chloride through the ion channel. Ivacaftor is a potentiator of the CFTR protein. The CFTR protein is a chloride channel present at the surface of epithelial cells in multiple organs. Ivacaftor facilitates increased chloride transport by potentiating the channel-open probability (or gating) of the G551D-CFTR protein.
bash-3.2$

I tried another similar file it has given me only one result

It seems to me error is related to check the whole file with many similar entries!
# 10  
Old 12-12-2012
This is EXACTLY what you have requested, there is NO error. Your sample file had one single record only, you did not provide a representative sample file, no hint was given on how records can be separated, identified, or checked for completeness, nor how data fields are interrelated. Pls use the code example in my post and extend/improve it to your expanded requirement.
# 11  
Old 12-13-2012
I checked regarding foreach and continue commands to retrieve all entreis but it doesnt wrk!

I didnt understand this symbol "%-28s" so unable to proceed further. Your guidance will be appreciated.

I made changes like this

Code:
awk 'BEGIN {cnt = split ("# Drug_Target_.*_Gene_Name|# Brand_Name|# Generic_Name|# Drug_Type|# Indication|# Mechanism_Of_Action", SA, "|")}
     foreach (cnt){{for (i=1; i<=cnt; i++) if (match ($1, SA[i])) Out[i]=$2}
     END {for (i=1; i<=cnt; i++) printf "%-28s", SA[i];  printf "\n";
          for (i=1; i<=cnt; i++) printf "%-28s", Out[i]; printf "\n" }}
    ' FS="\n" RS="\n\n"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

awk command to retrieve record 23 and 89 from UNIX file

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I am looking for awk command to retrieve only the record number 23 and record number 89 from a unix file?... (6 Replies)
Discussion started by: rakeshp
6 Replies

2. UNIX for Beginners Questions & Answers

awk command to retrieve record 23 and 89 from UNIX file

Hi Everyone, I am looking for awk command to retrieve only the record number 23 and record number 89 from a unix file? Please let me know what is the awk command for this? Regards Rakesh (1 Reply)
Discussion started by: rakeshp
1 Replies

3. Shell Programming and Scripting

awk - To retrieve an expression from the last line containing a pattern

Hi All, I'm new on this forum, and i'm trying since several days to find out a way to retrieve a expression from the last line containing a pattern. Could you please help me with this ? E.g. The file is containing the following lines 08/05 17:33:47 STAT1 Response(22) is... (4 Replies)
Discussion started by: Antonio Fargas
4 Replies

4. Shell Programming and Scripting

Retrieve printer detail - AWK

Hi All, For some reason, I need to have the printer detail from the AIX. Following are the part of /etc/qconfig and /etc/hosts. Can any one of you please help me with an awk some other option to get the detail ? I have mentioned the required output format at the end. /etc/qconfig s63lb1: ... (3 Replies)
Discussion started by: sraj142
3 Replies

5. Shell Programming and Scripting

awk to retrieve the particular value from a same list of xml tags

Hi All, I have the following code in one of my xml file: <com:parameter> <com:name>secretKey</com:name> <com:value>31XA874821172E89B00B1C</com:value> </com:parameter> <com:parameter> <com:name>tryDisinfect</com:name> <com:value>false</com:value> </com:parameter> <com:parameter>... (4 Replies)
Discussion started by: mjavalkar
4 Replies

6. Shell Programming and Scripting

cut, sed, awk too slow to retrieve line - other options?

Hi, I have a script that, basically, has two input files of this type: file1 key1=value1_1_1 key2=value1_2_1 key4=value1_4_1 ... file2 key2=value2_2_1 key2=value2_2_2 key3=value2_3_1 key4=value2_4_1 ... My files are 10k lines big each (approx). The keys are strings that don't... (7 Replies)
Discussion started by: fzd
7 Replies

7. Shell Programming and Scripting

sed/awk to retrieve max year in column

I am trying to retrieve that max 'year' in a text file that is delimited by tilde (~). It is the second column and the values may be in Char format (double quoted) and have duplicate values. Please help. (4 Replies)
Discussion started by: CKT_newbie88
4 Replies

8. Shell Programming and Scripting

How to retrieve digital string using sed or awk

Hi, I have filename in the following format: YUENLONG_20070818.DMP HK_20070818_V0.DMP WANCHAI_20070820.DMP KWUNTONG_20070820_V0.DMP How to retrieve only the digital part with sed or awk and return the following format: 20070818 20070818 20070820 20070820 Thanks! Victor (3 Replies)
Discussion started by: victorcheung
3 Replies

9. 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

10. UNIX for Dummies Questions & Answers

retrieve lines using sed, grep or awk

Hi, I'm looking for a command to retrieve a block of lines using sed or grep, probably awk if that can do the job. In below example, By searching for words "Third line2" i'm expecting to retrieve the full block starting with 'BEGIN' and ending with 'END' of the search. Example: ... (3 Replies)
Discussion started by: learning_linux
3 Replies
Login or Register to Ask a Question