Mam archiwum gzip z końcowymi danymi. Jeśli go rozpakuję za pomocą gzip -d
, powie mi: „ dekompresja OK, zignorowanie śmieci końcowych zignorowane ” (to samo dotyczy tego, gzip -t
co można wykorzystać jako metodę wykrywania, że takie dane są).
Teraz chciałbym poznać te śmieci, ale o dziwo nie mogłem znaleźć żadnego sposobu na ich wyodrębnienie. gzip -l --verbose
mówi mi, że „skompresowany” rozmiar archiwum to rozmiar pliku (tj. z danymi końcowymi), to źle i nie jest pomocne. file
też nie pomaga, więc co mogę zrobić?
gzip
file-format
phk
źródło
źródło
less
albohd
albohd | less
albo cokolwiek.while (<>)
pętlaperl
odczyta stdin i wszystkie pliki wymienione w @ARGV ...., co ułatwia pisanie skryptów, które działają równie dobrze jak filtr (tj. odczytuje stdin, zapisuje na stdout) oraz z nazwanymi plikami ). i stdout, oczywiście, zawsze można przekierować do pliku. większość moich skryptów perla jest napisanych jako filtry, aby z tego skorzystać.push @ARGV,'-' if (!@ARGV);
wcześniejmy $input_file_name = shift;
jest wszystko, co jest potrzebne tutaj. tzn. domyślny argument-
(komunikat pomocy może zostać wydrukowany, jeśli $ ARGV [0] == '-h' lub '--help'.). W przypadkuwhile(<>)
pętli nie musisz nawet tego robić, ale prawdopodobnie jest to więcej kłopotów niż dla tego warto napisaćIO::Uncompress::Gunzip
.-o
opcji lub czegoś takiego. posiadanie skryptu w sposób automatyczny przełącza się z pierwszego argumentu dwóch wprowadzanych argumentów na pierwszy i tylko generowanie argumentu wydaje mi się ryzykowne i podatne na wypadki (kuszące morfiny).