LINUX.ORG.RU

Раскодировать hexdump


0

0

Доброго времени суток.

Подскажите, как из вывода типа hexdump восстановить исходный файл. Баловался в vim в командой xxd, потом сохранил. Да, кретин :-\ Восстановил из резервной копии, но результат последних двух часов терять не хочется.

★★★★★

Решил. Простейший фильтр:

#!/usr/bin/perl

use strict;

my @hexes;
my @bytes;

while ( $_=<> ) {
    @hexes = ( $_ =~ /[0-9A-Fa-f]{4}\s/sg);
    while ( @hexes ) {
        $_=shift @hexes;
        @bytes = ( $_ =~ /^(..)(..)\s/ );
        printf ("%c%c", hex($bytes[0]), hex($bytes[1])) ;
    }
}

router ★★★★★
() автор топика
Ответ на: комментарий от router

Правда, это именно для xxd, а не hexdump

Если кому понадобится, для hexdump поменять байты местами

printf ("%c%c", hex($bytes[1]), hex($bytes[0])) ;

router ★★★★★
() автор топика
Ответ на: комментарий от router

гениально! никто бы не додумался. (каг до одного так и до другого :)

scyld
()
Ответ на: комментарий от anonymous

Точно :) Этот вариант гораздо лучше

Просто когда понял, что натворил с файлом, изучение xxd решил отложить до решения проблемы =) Где был мой мозг?

router ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.