У меня есть текстовый файл с разделителями табуляции.Я разделил это на столбцы.Каждый из первых 2 столбцов содержит идентификационный номер.
Я хочу сохранить все строки с идентификационным номером, начинающимся с P или Q, и удалить любые другие строки, где столбец 1 или 2 имеет любой другой идентификатор или является пустым.
например.поэтому столбцы, которые нужно сохранить, будут выглядеть так: P12345 или Q12345.Колонки, от которых нужно избавиться, будут GAG123, CH123 и т. Д. Или просто пустыми.
Я не могу понять, как это сделать.Я пробовал разбивать строки на массивы и grep / ^ [PQ] / elements [0] и [1] и другие разные вещи, но я, должно быть, делаю что-то не так.
Я пробовал следующий кодниже TLP, но это не сработает, я знаю, что, должно быть, делаю что-то в корне неправильно:
#!/usr/bin/perl
use warnings;
use strict;
open(FILE,"<myfile.txt");
my @LINES = <FILE>;
open(my $outfile, '>', 'changedtxt');
my @wanted;
while (<FILE>) {
my @fields = split('\t', $_);
if ( $fields[0] =~ /^[PQ]/ and $fields[1] =~ /^[PQ]/ ) {
push @wanted, $_;
print {$outfile} $_;
}
}
exit: