有没有办法根据另一个文件中的条目过滤文件中的条目? (最好是在unix中)
例如,文件1和2有50个条目(行)和10列。基于最后5列,我只想使用file1中的唯一条目。即条目存在于file1中但不存在于file2中(基于最后5列)。
我尝试过差异,但它似乎只适用于1列条目。
答案 0 :(得分:1)
这个Perl脚本似乎按照你的要求做了。
它使用每个记录中的最后五个字段作为键从file2
构建哈希值,然后对file1
执行相同操作,如果file2
包含相同的键,则打印记录
use strict;
use warnings;
use autodie;
my %file2;
open my $fh, '<', 'file2.txt';
while (<$fh>) {
next unless /\S/;
my @fields = split;
my @key = @fields[-5..-1];
++$file2{"@key"};
}
open $fh, '<', 'file1.txt';
while (<$fh>) {
if (/\S/) {
my @fields = split;
my @key = @fields[-5..-1];
print unless $file2{"@key"};
}
else {
print;
}
}
close $fh;