perlに複数の列があるテキストファイルでフィルタリングを行っています
ファイルの形式は次のとおりです。
C1 C2 C3 C4
1 .. .. ..
2 .. .. ..
3 .. .. ..
3 .. .. ..
3 .. .. ..
列1の一意の値を持つすべての行を削除したいので、出力は次のようになります。
C1 C2 C3 C4
3 .. .. ..
3 .. .. ..
3 .. .. ..
このファイルでさまざまなフィルタリング手順を実行しています。これは私が作業しているスクリプトです
my $ DATA
my $filename = $ARGV[0];
unless ($filename) {
print "Enter filename:\n";
$filename = <STDIN>;
chomp $filename;
}
open($DATA,'<',$filename) or die "Could not open file $filename $!";
open($OUT,'+>',"processed.txt") or die "Can't write new file: $!";
while(<$DATA>){
next if /^\s*#/;
print $OUT $_;
}
close $OUT;
ご覧のとおり、ファイルからコメント行を削除するために次のコマンドをすでに使用しているwhileループで作業しています。次に、このループに、列1の一意の値を持つすべての行を削除するコマンドを追加します。
誰かがこれを手伝ってくれませんか?