Извлечение строк из двоичного файла с использованием регулярных выражений и преобразование в ASCII с использованием Perl

Попытка выяснить, как извлечь строку из символов из двоичного файла и преобразовать их в ascii. Символы представляют собой штрих-код, которому предшествует постоянная строка текста. Моя мысль состоит в том, чтобы выяснить, что представляет собой шаблон HEX для строковой постоянной строки, и извлечь строку на основе этого, а затем преобразовать HEX в ASCII.

Проблема в том, что я не знаю, как заставить Perl «читать» файл или «видеть» то, что он видит. Это означает, что если файл был текстовым файлом, он мог бы сделать что-то вроде этого - Perl: извлечение данных из текста с помощью регулярного выражения, но я не знаю, как выяснить, на какой двоичный шаблон я ориентируюсь; тем не менее, я разместил здесь одно представление этих данных: заголовок «открытый текст» из HEX-файла с использованием Perl

Как это сделать в Perl?


person blunders    schedule 10.05.2011    source источник


Ответы (1)


Вот один простой способ сделать это:

perl -nlwe "print for m/\w{2,}/g" < bla.exe

Это напечатает все строки, состоящие из \w{2,}, то есть исключительно устаревших словесных символов, и по крайней мере два из них.

person Lumi    schedule 10.05.2011
comment
+1 @Michael Ludwig: Спасибо, кажется, что кодировка постоянна, но эта модель синтаксического анализа не нравится. Это означает, что некоторые тексты ASCII выходят, а другие отсутствуют; предполагая, что в строку введены символы, отличные от ASCII. Просто знайте, могу ли я увидеть текст ASCII в текстовом редакторе или HEXedit; который я разместил на странице, на которую я ссылался, под названием «Извлечение «незашифрованного» заголовка из HEX-файла с использованием Perl — спасибо! - person blunders; 10.05.2011