У меня есть текстовый файл с именем mytext.txt
.Я хочу получить строку текста в этом файле до и после строки Query:
той же строки.
mytext.txt:
# P-value cutoff: 1
# Category cutoff: 4
# Output Format: Pretty
---------------------------------------------------
5' UGGGAGGAUGGGAUGGGAAAG 3' Transcript: Supercontig_2.10_1111019:1499-1519 Slice Site:1510
||oo||o| o|o|| o|||||
3' ACUUUCUUUUCUUAAUCUUUC 5' Query: Seq_2171_593
SiteID: Supercontig_2.10_1111019:1510
MFE of perfect match: -26.00
MFE of this site: -18.70
MFEratio: 0.719230769230769
---------------------------------------------------
5' GUUUGGAAAGGCGGUUACGGGG 3' Transcript: Supercontig_2.10_1257006:252-273 Slice Site:264
|oo||||||o|||||| o|oo
3' CGGACCUUUUCGCCAAGAUCUU 5' Query: Seq_5744_249
SiteID: Supercontig_2.10_1257006:264
вот мой код, который я попробовал:
#!/usr/bin/perl
use warnings;
use strict;
use LWP::Simple;
use Modern::Perl;
my $word = "Query";
my $filename = $ARGV[0];
open(INPUT_FILE, $filename);
while (<INPUT_FILE>) {
chomp;
#for my $word (@words) {
my ($before, $after) = $_ =~ /(\S+)(?:\t\Q$word\E\t)(\S+)/i;
say "word: $word\tbefore: $before\tafter: $after";
# }
}
Результат, который я хочу:
3' ACUUUCUUUUCUUAAUCUUUC 5' Seq_2171_593
3' CGGACCUUUUCGCCAAGAUCUU 5' Seq_5744_249
PS,Я могу сделать это, используя различные другие методы, такие как Unix One Liners, но я изучаю Perl и хочу сделать это в Perl.Спасибо за вашу помощь.