2013-11-26 5 views
-3

Один из моих серверов дает мне данные с Content-Type: application/binary, т.е. данные, которые я получаю, выглядят как некоторые данные elien, теперь мне нужно для преобразования этих данных в простые данные, я не получаю способ, как это сделать. Я делаю все это с помощью командной строки linux.Как преобразовать прикладные/двоичные данные в простые данные в linux

После поиска в Интернете, я получил один способ, согласно этому сайту, мне нужно удалить первые 10 символов и последние 8 символов из моих данных, а затем использовать gunzip с этим, тогда я получу исходные данные, но когда я Я пытаюсь удалить много символов, поскольку это двоичный вывод, он сокращает больше или меньше 10 + 8 символов. Фактически Echo не может правильно печатать данные. Итак, пожалуйста, кто-нибудь знает, как обращаться с двоичными данными, пожалуйста, помогите мне.

+0

Как мы должны знать, какие бинарные данные формата вырывают ваш сервер? – John3136

+0

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

+0

Двоичные данные могут быть любыми - может быть изображение, почтовый индекс файл, exe. Вам нужно знать, что это такое - он даже не может конвертировать в текст! – John3136

ответ

2

Согласно вашему вопросу, у вас есть двоичные данные, и вы хотите удалить первые десять байтов, последние восемь байтов, а затем уничтожить их. Для этого запустите из командной строки:

tail -c +11 binary.in | head -c -8 | gunzip >original.out 

, где вы должны заменить «binary.in» с именем файла, который вы получили от вашего сервера. Результат, который вы хотите, попадает в файл с именем «original.out».

В этой строке происходит три вещи. Первый «tail -c +11 binary.in» принимает ваш двоичный файл и выводит все, кроме первых 10 байтов. Во-вторых, «head -c -8» считывает с вывода команды хвоста и записывает все, кроме последних восьми байтов. В-третьих, «gunzip> original.out» считывает с выхода команды head, распаковывает его и отправляет результат в файл «original.out». Вертикальные полосы "|" подключите стандартный вывод одной команды к стандартному входу следующего.

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