Gegeben eine matrixartige Textdatei, ich möchte alle Zeilen extrahieren (\t
ist das Trennzeichen), die Werte> 60 in der 3. Spalte (Pos 2) und Werte> 80 enthalten in der 6. (pos 5) und senden Sie die Ausgabe an eine andere Datei.Soweit ich bekam:Perl: Extrahieren bestimmter Werte aus Matrix-Datei
#!/usr/bin/perl;
use strict;
use warnings;
use diagnostics;
open(my $in, "file.txt")or die $!;
my $line = <$in>;
my $count;
while (<$in>) {
chomp;
my @element = split (/\t/,$_);
if ($element[2] >= 60 && $element[5] > 80){
$count++;
}
}
close $in;
print $count;
Was ist los? Danke.PS. Ich habe ähnliche Fragen gefunden, aber meine schwachen Perl-Fähigkeiten haben mich daran gehindert, Entschlossenheit zu finden.
Statt Inkrementieren $ count ist, könnten Sie tun, nur einen Druck "_ $ \ n"; um die Zeile auf dem Bildschirm auszudrucken. Auf diese Weise können Sie überprüfen, ob Sie in Ihrer if-Anweisung die richtigen Zeilen erhalten. Wenn es Probleme bei der Aufteilung gibt, bei der Sie nicht mehrere Elemente erhalten, müssen Sie möglicherweise den umgekehrten Schrägstrich mit einem weiteren umgekehrten Schrägstrich umgehen. – Glenn