AWK, Perl?? Ich habe ein AWK-Kommandozeile. Ich weiß nicht, wie Sie es in ein Perl-Skript
Mein AWK Befehl:
awk'BEGIN {count=0} {count=count+($3-$2)} END {print count}' zebrafish
Wie verwende ich es in ein Perl-Skript?
Ich sehe keine Notwendigkeit der Verwendung von awk in perl. Die gleiche Funktionalität implementiert werden kann, die vollständig innerhalb von perl. Bitte überprüfen Sie meine Lösung
Sie können konvertieren Sie ein awk-Skript ein perl-Skript unter Verwendung der standard-a2p-Programm.
Man könnte verkürzt auch Ihre
Sie können konvertieren Sie ein awk-Skript ein perl-Skript unter Verwendung der standard-a2p-Programm.
Man könnte verkürzt auch Ihre
awk
: awk '{count+=($3-$2)} END {print count}'
InformationsquelleAutor user2923577 | 2013-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehe ich keine Notwendigkeit
awk
innerhalbperl
. Die gleiche Funktionalität implementiert werden kann, die vollständig innerhalbperl
wie folgtWenn Sie noch verwenden möchten
awk
Können Sie
system
- Funktion aufrufen, jegliche shell-Befehle, hierawk
vonPerl
SkriptWenn Sie möchten, dass die Ausgabe von
awk
zum speichern in variable innerhalbperl
dann verwendenOn a side note, Ihre
awk
Befehl komprimiert werden kannInformationsquelleAutor jkshah
Warum bist du mit Perl und AWK zusammen? Auch wenn das AWK-code ist bereits geschrieben, wenn Sie erweitern es mit Perl, es wahrscheinlich sinnvoll, nur übersetzen Sie es in Perl. Zum Beispiel:
Können Sie auch die Kommandozeilen-Optionen zu schreiben, ein Perl-one-liner, der das tut, was die AWK-code:
Aber in dieser form ist es nicht wesentlich einfacher einbetten in einen größeren Perl-Programm als die AWK-code ist.
InformationsquelleAutor Mark Reed
Können Sie verwenden:
InformationsquelleAutor cirne100
Den Befehl in Perl sein soll:
Denken Sie daran, zu entkommen die Charaktere
$
,"
, und ich weiß nicht, was mit\
. Wenn Sie Zweifel haben, versuchen Sie, zu entkommen; das ist die Philosophie.Ich versuche es auf diese Datei: $ cat Zebrafisch 11 222 444 555 (EOR) 222 444 555 666 (EOF) In perl-script-system("awk 'BEGIN {count =0} {count =count+(\$3-\$2)} END {print count}' Zebrafisch"); Ergebnis: 333 Es Funktioniert!
Nochmals vielen Dank. Was ich habe ist: Spalte 2: 1 ,2,3 und Spalte 3 ist 4,5,6....Was ich brauche ist ((4-1)+(5-2)+(6-3))....
InformationsquelleAutor Thomas8
Wenn Perl zum ersten mal über, war es verwendet als mächtiger awk Ersatz.
Wegen dieser Notwendigkeit, Perl kommt eigentlich mit utility
a2p
, die speziell für diesen Zweck - es steht fürawk to perl
.Ich habe versucht, speichern Sie Ihr Skript in eine Datei, und führen Sie es durch
a2p
, und es arbeitete fein - generierten arbeiten Perl-Skript. Es war nicht sehr kurz (etwa 20 Zeilen), aber es funktionierte.InformationsquelleAutor mvp