How to grep paragraph?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to grep paragraph?
# 1  
Old 08-28-2013
How to grep paragraph?

Hi, I have A file like this:

Code:
>Contig1
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEATATATAT
>Contig2
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEAATTTTTAATTTTTTCCCA
ATCCCAAATATATAT
>Contig3
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEAATTTTTAATTTTTTCCCA
ATCCCAAATAAATTTTTTCCCAATAT
ATGATATATATAEAATTTTTAATTTTT
TCCCAATCCCAAATATATATATATAT
AATATATATA
>contig1 length=130 dkfldf
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEAATTTTTAATTTTTTC
>contig2 length=500 ldjfdlfjfdls
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEAATTTTTAATTTTTTCCCA
ATCCCAAATAAATTTTTTCCCAATAT
ATGATATATATAEAATTTTTAATTTTT
TCCCAATCCCAAATATATATATATAT
AATATATATA
....

If i have B file like this:
Code:
Contig2
Contig3
contig2
....

How could i get a C file like this:
Code:
>Contig2
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEAATTTTTAATTTTTTCCCA
ATCCCAAATATATAT
>Contig3
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEAATTTTTAATTTTTTCCCA
ATCCCAAATAAATTTTTTCCCAATAT
ATGATATATATAEAATTTTTAATTTTT
TCCCAATCCCAAATATATATATATAT
AATATATATA
>contig2 length=500 ldjfdlfjfdls
AAAAAAATTTTTTCCCAATATATGAT
ATATATAEAATTTTTAATTTTTTCCCA
ATCCCAAATAAATTTTTTCCCAATAT
ATGATATATATAEAATTTTTAATTTTT
TCCCAATCCCAAATATATATATATAT
AATATATATA

Thanks!!!

Moderator's Comments:
Mod Comment Use code tags please, see PM.

Last edited by zaxxon; 08-28-2013 at 11:21 AM.. Reason: code tags
# 2  
Old 08-28-2013
Code:
awk 'END {
  if (substr(f, 2) in idx)
    print r
  }
NR == FNR {
  idx[$0]; next
  }
/^>/ {
  if (length(r)) {
    if (substr(f, 2) in idx)
      print r
    r = x; f = $1      
    }
  }  
{
  r = r ? r ORS $0 : $0
  }' file_b file_a

# 3  
Old 08-29-2013
Thanks, but it seems not work.


Quote:
Originally Posted by radoulov
Code:
awk 'END {
  if (substr(f, 2) in idx)
    print r
  }
NR == FNR {
  idx[$0]; next
  }
/^>/ {
  if (length(r)) {
    if (substr(f, 2) in idx)
      print r
    r = x; f = $1      
    }
  }  
{
  r = r ? r ORS $0 : $0
  }' file_b file_a

# 4  
Old 08-29-2013
You're welcome! Could you be more specific? Do you get wrong output? No output at all?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Extract paragraph that contains a value x<-30

I am using OSX. I have a multi-mol2 file (text file with coordinates and info for several molecules). An example of two molecules in the file is given below for molecule1 and molecule 2. The total file contains >50,000 molecules. I would like to extract out and write to another file only the... (2 Replies)
Discussion started by: Egy
2 Replies

2. Shell Programming and Scripting

Cat last paragraph only command

Hi guys I am learning CAT command with text files, I have learnt the basics such as finding a word and numbering but say for example I want it to display the last paragraph how would I do this with CAT commands (4 Replies)
Discussion started by: steve2015
4 Replies

3. Shell Programming and Scripting

Compare a paragraph

I know this is a challenging, its about comparing a 3 paragraph, from a whois command, i want to print what is the data that is not unique, example below is the admin phone and techphone, the rest is the same.it will print the correct and wrong # whois google.com| sed -n '/Registry Registrant... (3 Replies)
Discussion started by: kenshinhimura
3 Replies

4. UNIX for Dummies Questions & Answers

Substituiton for grep paragraph parameter

My bash doesn't have grep -p.. I often find myself wanting to search a section of a man page for areas dealing with a specific property or parameter... For instance wanting to read everything in the man pages for bash that deal with Parameter Expansion.. Is there a way to do this with grep if... (3 Replies)
Discussion started by: glev2005
3 Replies

5. UNIX for Dummies Questions & Answers

Output text from 1st paragraph in file w/ a specific string through last paragraph of file w/ string

Hi, I'm trying to output all text from the first paragraph in a file that contains a specific string through the last paragraph in that file that contains that string. Previously, I was outputting just each paragraph with that search string with: cat in_file | nawk '{RS=""; FS="\n";... (2 Replies)
Discussion started by: carpenn
2 Replies

6. Shell Programming and Scripting

Pattern in a paragraph

Hi, I have read similar questions and I was not able to get a solution, so please help :) I have two files: 1-Pattern file contains list of patterns pattern1 pattern2 pattern3 pattern4 .... pattern# 2-input file in the format >hdhfshsdfjhpattern1xmbxmbxnmv... (4 Replies)
Discussion started by: tbakheet
4 Replies

7. UNIX for Dummies Questions & Answers

Split a paragraph

Hi, Consider the following paragraph. This is line1. This is line2, This is last line. I need the output as 4:This is last line. i.e The line after the blank line should be displayed along with line number. I am a unix begineer.Any one please help me to solve this problem (3 Replies)
Discussion started by: Sekar1
3 Replies

8. Linux

Extract a paragraph

Hi , Unix.com has been life saver for me I admit :) I am trying to extract a paragraph based on matching pattern "CREATE TABLE " from a ddl file . The paragraphs are seperated by blank line . Input file is #cat zip.20080604.sql1 CONNECT TO TST103 SET SESSION_USER OPSDM002 ... (2 Replies)
Discussion started by: capri_drm
2 Replies

9. Shell Programming and Scripting

help, using awk to get paragraph

Hi, I'm trying to find pattern in log file. I'm using awk to search the pattern and print the paragraph. And it's not working well like I want. The file actually is TCAP message, it has format like this : ... ... ... ***************************************** INCOMING TCAP MESSAGE At... (6 Replies)
Discussion started by: kunimi
6 Replies

10. Shell Programming and Scripting

Bold the paragraph

Hi, I have a file with multiple paragraph. I want to look for some word and make that paragraph bold. How can I do that? Thanks, Karthik (3 Replies)
Discussion started by: caprikar
3 Replies
Login or Register to Ask a Question