2015-06-24 3 views
-1

Итак, получив право на точку для сценария, я создаю специальную функцию, которая может принимать сжатые данные из STDIN и передавать несжатые данные в STDOUT независимо от типа сжатия.Пользовательская функция разблокировки BASH

Пример: blah blah decryption stuff | custom_uncompress | other_program

С gzip я мог бы сделать: «gzip -d -c» или для lzo «lzop -d -c», но я не знаю, какое сжатие оно имеет и не может прочитать магическое число из файла, потому что оно зашифровано ,

+0

Знаете ли вы * что угодно * о формате файла? Вам нужно будет понять это, прежде чем начинать писать что-либо. – duskwuff

+0

@duskwuff, как я уже сказал, я знаю, что это сжатый файл, но для этого и предназначена функция. Мне нужна функция, чтобы узнать, с чем сжат поток, и сбрасывать его обратно без сжатия. Я просто не знаю, как я могу получить эту информацию без использования временных файлов. И почему downvote? – QuaDECH

+0

Зная, что это «сжатый», на самом деле ничего не говорит нам. Вы должны точно знать, какой тип сжатия/кадрирования/шифрования был использован; без этого вы не дали нам достаточно информации, чтобы даже попытаться ответить на ваш вопрос. – duskwuff

ответ

0

Как уже отмечалось в комментарии, невозможно распаковать данные, если вы даже не знаете, в каком сжатом формате он есть. Единственная лучшая попытка, которую можно сделать, это захватить первые пару байтов из потока данных и «угадать» результат среди выбранных распространенных форматов сжатия. Когда исходные данные сжимаются любым способом, который не обрабатывается этой магией, тогда это не повезло.

Этот вопрос слишком необоснован, чтобы иметь правильный ответ.

+0

Мне просто нужна эта функция, чтобы получить формат файла из магического номера, но я не знаю, как это сделать со стандартного ввода. – QuaDECH

+0

@ArtjomB. Я подумал об этом некоторое время назад, но не совсем уверен, что это правильная причина поставить вопрос. –

+0

@QuaDECH Сохраните заголовок (может быть, сто байт или что-то еще), либо в память, либо в файл, а затем сравните заголовок с общими форматами один за другим. –

Смежные вопросы