Dekomprimieren Sie die Ausgabe und leiten Sie sie an das Skript weiter

13

Ich habe ein Skript, das eine Eingabe mit einem -iFlag nimmt. Die Eingabedatei, die ich habe, ist komprimiert (.gz). Was ich tun möchte (nicht sicher, ob es möglich ist), weil die Datei riesig ist, mache so etwas:

gunzip -c myfile.gz | myScript.pl -i STDIN -o myoutfile.txt 

Leiten Sie also die Ausgabe der Dekomprimierung an das Eingabeflag meiner Skripte weiter.

crysis405
quelle
Und deine Frage ist?
Seth
Dieser Befehl, den ich geschrieben habe, funktioniert nicht, ich möchte etwas, das wird
crysis405
Nun, Sie haben einen Raum zwischen myund script. Wenn Sie -ozuerst verwendet und dann -iwürde es funktionieren (entfernen Sie die STDIN)
Seth
Entschuldigung für den Platz, der sollte nicht da sein. Das Skript gibt mir jetzt einen Fehler, dass ich keine Eingabe gemacht habe. Muss dies im Perl-Skript speziell angegeben werden, wenn Sie Piping wie dieses durchführen möchten?
crysis405
Nie Perl gemacht, also kann ich nicht sagen.
Seth

Antworten:

18

Ich habe die Lösung gefunden:

gunzip -c myfile.gz | myScript.pl -o myoutfile.txt -i -

es war das -nach -i, die den Trick tat.

crysis405
quelle
1
Für andere Leser -cist für "to stdout"
mpen