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.


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.


1
Für andere Leser -cist für "to stdout"
mpen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.