Ich habe eine CSV-Datei, in der ich nach einem bestimmten Wort suchen 'ELEKTRIKER' suchen, die der erste Eintrag in der Spalte ist. Ich möchte die gesamte Spalte mit dem Namen ELECTRICIANS ausdrucken und wenn ich ein anderes Wort grep, sollte einen Fehler ausgeben. wie folgtVerwenden Sie grep Befehl, um ein Wort zu finden und dann die gesamte Spalte in Perl-Skript
Ich habe grep Operation ausgeführt:
my $exit = system("grep -q $column_name $file_name");
if ($exit == 0)
{
print "Entered column name $column_name found in file $file_name\n";
}
else {
print "Column name not found, try again!\n";
exit;
}
Nun, wie drucke ich die Spalte in der Datei unter ‚ELECTRICIANS‘?
Inhalt der CSV-Datei ist wie folgt:
WEEK,SITE ENGINEERS,SITE ENGINEERS 2,ELECTRICIANS,ELECTRICIANS 2
ONE,13,28,17,29
TWO,13,30,18,27
THREE,13,30,14,23
FOUR,15,30,12,29
FIVE,15,22,16,24
SIX,16,30,20,30
SEVEN,12,27,13,29
EIGHT,19,22,16,29
NINE,19,21,19,30
TEN,12,22,14,30,13
In Ihrem Ansatz, würden Sie das Ergebnis Ihrer grep Befehl in einem Perl-Variablen speichern müssen. Dies bedeutet, dass Sie nicht 'system (" grep ... ")', sondern etwas wie 'qx (grep ....)' verwenden können. Aber warum erstellen Sie einen Childprocess nur zum Überlappen der Linie? Sie könnten dies ganz einfach innerhalb von Perl tun. – user1934428
Mir ist die qx-Syntax nicht bekannt. Wie speichere ich die Ausgabe des Befehls grep in eine Variable? –
'my $ output = qx (...)'. Siehe die Manpage [perlop] (http://perldoc.perl.org/perlop.html#Quote-Like-Operators). – user1934428