【发布时间】:2015-06-04 00:15:28
【问题描述】:
我需要帮助来编写一个可以运行的 perl 脚本,该脚本执行相同的功能
排序命令:sort –t’;’ –k1,1 File1.txt File2.txt File2.txt | uniq –u
我有两个用分号分隔的文件。我需要仅根据 File2.txt 的第一列(数字)的唯一性(而是差异)提取唯一行,同时其他 column2 和 column3 无关紧要。
File1.txt(主文件)
123;winter;season
456;fall;season
789;autumn;season
321;summer;season
654;dry;weather
987;cold;weather
文件2.txt
123;winter;season
456;fall;season
789;autumn;season
321;summer;season
369;march;month
147;september;month
预期输出(369 和 147 不在 File1.txt 中)
369;march;month
147;september;month
到目前为止我已经写了但是它打印出了文件二;
#!/usr/bin/perl
# create names lookup table from first file
open(DATA, "<File1.txt") or die "Couldn't open file File1.txt, $!";
my %names;
while (<DATA>) {
(my @data)= split /;/, $_;
$names{$data} = 1;
last if eof;
}
# scan second file
open(DATA2, "<File2.txt") or die "Couldn't open file File2.txt, $!";
while (<DATA2>) {
print if /^(\d+)/ && not $data[0];
}
}
我仍然很难理解数组和哈希。任何有助于改进我的代码的帮助将不胜感激。请添加 cmets 或指出我遇到的任何错误...提前谢谢。,
【问题讨论】: