Ich habe ein gzip-Archiv mit nachgestellten Daten. Wenn ich es damit entpacke, heißt gzip -d
es: " Dekomprimierung OK, nachlaufender Müll ignoriert " (dasselbe gilt für gzip -t
die Methode zum Erkennen solcher Daten).
Jetzt würde ich diesen Müll gerne kennenlernen, aber seltsamerweise konnte ich keinen Weg finden, ihn zu extrahieren. gzip -l --verbose
sagt mir, dass die "komprimierte" Größe des Archivs die Größe der Datei ist (dh mit den nachfolgenden Daten), das ist falsch und nicht hilfreich. file
ist auch keine Hilfe, also was kann ich tun?
quelle
less
oderhd
oderhd | less
oder was auch immer weiterleiten.while (<>)
Schleife inperl
liest stdin und alle in @ARGV aufgelisteten Dateien. Dies macht es einfach, Skripte zu schreiben, die genauso gut funktionieren wie ein Filter (dh stdin lesen, in stdout schreiben) und mit benannten Dateien ). und stdout kann natürlich immer in eine Datei umgeleitet werden. Die meisten meiner Perl-Skripte sind als Filter geschrieben, um dies auszunutzen.push @ARGV,'-' if (!@ARGV);
vorhermy $input_file_name = shift;
ist alles was hier gebraucht wird. dh ein Standardargument von-
(die Hilfemeldung könnte gedruckt werden, wenn $ ARGV [0] == '-h' oder '--help'.). Für einewhile(<>)
Schleife müssten Sie das nicht einmal tun, aber es ist wahrscheinlich schwieriger, als es sich lohnt, es so zu schreibenIO::Uncompress::Gunzip
.-o
Option oder so. Wenn ein Skript automatisch vom ersten Argument von zwei Eingaben zum ersten wechselt und nur das Argument ausgegeben wird, erscheint es mir riskant und unfallanfällig (verlockende Murphy).