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.