У меня есть файл дампа базы данных. Терминатор поля «\ t | \ t». Я пытаюсь получить первые 2 поля (TAX_ID и родительский TAX_ID), используя этот код:Файл дампа базы данных Parsing в Perl
код:
while(my $line = <INPUT>) {
my ($taxid, $parentid, $rank, $embl, $div, $inherdiv, $mito, $inhermito, $gbflag, $subtree, $comment) = split (/\|/, $line);
$taxid =~ s/^\t$//g;
$parentid =~ s/^\t$//g;
print $taxid."_".$parentid."\n";
}
пример вывода:
69223 _ 204037
69224 _ 551
Это не кажется, чтобы очистить вкладку когда я использую функцию подстановки s /// g. Любые идеи почему? Есть ли лучший способ очистить каждое значение из полей
Если \ t является разделителем, почему вы используете метасимвол «^»? –
«\ t | \ t» является разделителем. Я попытался разделить каждую строку без раскола успеха («\ t | \ t», $ line), поэтому я разбиваю на | только затем пытаясь очистить вкладки. – user2674514