我有一个制表符分隔的文本文件。我已将它分成若干列。前两列中的每一列都包含一个ID号码。删除特定列中没有指定模式的文件中的行
我想保留所有以P或Q开头的ID号的行,并删除其他行中列1或2有其他ID或空白的行。
例如。因此要保留的列将如下所示:P12345或Q12345。删除的列将是GAG123,CH123等或只是空白。
我无法解决如何做到这一点。我已经尝试将行分割成数组和grep/^ [PQ]/elements [0]和[1]以及其他各种各样的东西,但是我必须做出错误的事情。
我试着从TLP下面的follwoing代码,但它不会工作,我知道我必须做根本错误的东西:
#!/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:
请张贴你到目前为止的代码。 – Mat
你到目前为止得到了哪些代码? – hexcoder
如果一个ID以P或Q开头,但其他ID不是? – TLP