I have a file from which I want to search for the string "16S" and "23S" and extract the section containing these strings into two separate files.
Input file:
start description Human 16S rRNA **some text** **some text** // start description Mouse 18S rRNA some text some text // start description Mouse 23S rRNA some text some text // Expected output: File1 for 16S:
start description Human 16S rRNA some text some text // File2 for 23S:
start description Mouse 23S rRNA some text some text // My code used:
#! /usr/bin/perl # default output file is /dev/null - i.e. dump any input before # the first [ entryN ] line. $outfile='FullrRNA.gb'; open(OUTFILE,">",$outfile) || die "couldn't open $outfile: $!"; while(<>) { # uncomment next two lines to optionally remove comments (startin with # '#') and skip blank lines. Also removes leading and trailing # whitespace from each line. # s/#.*|^\s*|\s*$//g; # next if (/^$/) # if line begins with 'start', extract the filename if (m/^\start/) { (undef,$outfile,undef) = split ; close(OUTFILE); open(OUTFILE,">","$outfile.txt") || die "couldn't open $outfile.txt: $!"; } else { print OUTFILE; } } close(OUTFILE);