perl 根据文件第一列删除重复的行且第三列不要
txt文件:abc232231abc232281apc282291处理后:abc232apc282以Tab键分隔...
txt文件:
abc 232 231
abc 232 281
apc 282 291
处理后:
abc 232
apc 282以Tab键分隔 展开
abc 232 231
abc 232 281
apc 282 291
处理后:
abc 232
apc 282以Tab键分隔 展开
1个回答
展开全部
use strict;
my %seen;
open F, ">Output.txt" or die "Can't open output file";
while ( my $line = <DATA> ) {
my @data = split /\s+/, $line;
next if $seen{$data[0]};
print F "$data[0]\t$data[1]$/" ;
$seen{$data[0]}++
}
close F;
__DATA__
abc 232 231
abc 232 281
apc 282 291
my %seen;
open F, ">Output.txt" or die "Can't open output file";
while ( my $line = <DATA> ) {
my @data = split /\s+/, $line;
next if $seen{$data[0]};
print F "$data[0]\t$data[1]$/" ;
$seen{$data[0]}++
}
close F;
__DATA__
abc 232 231
abc 232 281
apc 282 291
追问
首先,谢谢
其次,我想要的是:
txt文件名:cust.txt
处理后的文件名:AfterCust.txt
另外,cust.txt文件第一行就是数据,没有行标示
追答
use strict;
my %seen;
open SRC, "cust.txt";
open F, ">AfterCust.txt" or die "Can't open output file";
while ( my $line = ) {
my @data = split /\s+/, $line;
next if $seen{$data[0]};
print F "$data[0]\t$data[1]$/" ;
$seen{$data[0]}++
}
close F;
close SRC;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询