У меня есть файл размером чуть больше 500 МБ, который вызывает некоторые проблемы.
Я считаю, что проблема в соглашении конца строки (EOL). Я хотел бы посмотреть на файл в его неинтерпретированной необработанной форме (1), чтобы подтвердить соглашение EOL о файле.
Как я могу просмотреть «двоичный» файл, используя что-то встроенное в Windows 7? Я бы предпочел не загружать что-либо дополнительное.
(1) Мой коллега и я открыли файл в текстовых редакторах, и они показывают строки, как и следовало ожидать. Но оба текстовых редактора будут открывать файлы с различными соглашениями EOL и интерпретировать их автоматически. (TextEdit и Emacs 24.2. Для Emacs я создал второй файл с использованием только первых 4K-байтов head -c4096
в окне Linux и открыл его из окна Windows.
Я попытался использовать hexl-режим в Emacs, но когда я перешел в hexl-режим и вернулся в текстовый режим, содержимое буфера изменилось, добавив видимый ^ M в конец каждой строки, так что я не доверяя этому на данный момент.
Я полагаю, что проблема может быть в конце строки символов. Редакторы, которые мы с коллегой пытались (1), просто автоматически определили в конце строки и показали нам строки. И на основании других доказательств я считаю, что конвенция EOL касается только возврата каретки. (2) вернуть только.
Чтобы узнать, что на самом деле находится в файле, я хотел бы взглянуть на двоичное содержимое файла или, по крайней мере, на пару тысяч байт файла, предпочтительно в шестнадцатеричном формате, хотя я мог бы работать с десятичным или восьмеричным. На один ноль было бы довольно грубо смотреть.
ОБНОВИТЬ
За исключением предложенного DEBUG
, все ответы ниже в той или иной степени работают. Я проголосовал за каждого из них как полезного. Мой вопрос был плохо сформирован. При тестировании каждого предложенного решения я обнаружил, что я действительно хотел, чтобы рядом просматривался шестнадцатеричный и текстовый контент, и что я хотел, чтобы это было что-то, где когда я наводил курсор на что-либо, либо на байтовое значение, либо на текстовый символ, то, что соответствовало на другая сторона будет выделена.
Я действительно решил свою проблему, когда Emacs hexl-режим начал работать "правильно". Поэтому я не использовал ни один из этих ответов, а только тестировал их (на самом деле следует изучить странное поведение Emacs и составить отчет об ошибке).
Ответы:
Вам нужен «шестнадцатеричный редактор». Я использовал «Hex Editor Neo» в течение многих лет, и это очень хорошо. Он доступен в бесплатной и платной версиях . (И я уверен, что есть другие подобные инструменты.)
источник
Если у вас есть PowerShell версии 5.0 или более поздней версии, вы можете использовать
powershell
встроенную функциюFormat-Hex
источник
Format-Hex
не доступно в моей PowerShell; Я просто получаю «не распознанную» ошибкуВстроенный, быстрый и грязный: запустить
powershell
, выполнить:TotalCount - это количество байтов, которые вы хотите прочитать из файла.
Google 'powershell hexdump', чтобы получить гораздо более полированные / работоспособные версии.
Если у вас есть Windows Resource Kit Tools (не совсем встроенный, но закрытый), вы также можете использовать утилиту cmd line, которая называется
list.exe
. Это небольшой редактор с шестнадцатеричным режимом. Разработан специально для работы с большими файлами:источник
list.exe /?
справки не дает много информации, но однажды в редакторе просто нажмите,?
чтобы увидеть команды.H
открывает редактор Hex, иF1
переключает способ отображения HexЭто также работает на все после XP:
certutil -encodehex MyProgram.exe MyProgram.txt
XP требует пакета средств администрирования Windows Server 2003 здесь:
https://www.microsoft.com/en-us/download/details.aspx?id=16770
источник
Скопируйте файл на имя с
.COM
расширением, где базовое имя не длиннее восьми символов. БегЭто даст
-
подсказку «». Типповторно в г жаемое файл 128 байт за один раз. Тип
для отображения 128 байтов, начиная с адреса , который должен быть введен в шестнадцатеричном формате, где начало файла - адрес 100. Введите
отображать от адреса 1 до адреса 2 . Тип
для отображения Num байт (длина) , начиная с адреса . число также вводится в шестнадцатеричном виде. Используйте,
Q
чтобы выйти.Например,
источник
C:\>attrib debug.exe /s
, Результаты:File not found - debug.exe
. Не удалось найти официальное заявление , отладка больше не поддерживается , но из того, что я увидел в Интернете, похоже, что поддержка отладки была прекращена некоторое время назад. Я нашел DebugDiag от Microsoft. (Дополнительная загрузка.) Отладка? Может быть, он поддерживает просмотр файлов в HEX? Поставляется в виде файла .MSI. Требуется пароль администратора для установки. Я не одинhead -c4096 bigFileName > smallFileName
Linux для получения первых 4 КБ файлов. Строки настолько малы, что четыре КБ имеют много строк для моих целейhexdump -C
на Linux?HxD - это переносимый шестнадцатеричный редактор, который не требует установки и представляет собой не что иное, как отдельный exe-файл.
http://mh-nexus.de/en/hxd/
Другим аналогичным переносимым вариантом является Frhed:
http://frhed.sourceforge.net/en/screenshots/
источник
Поскольку Windows 7 поставляется со встроенной платформой dotnet 3.5, у вас будет встроенный компилятор C #, так что вы можете получить, например, список из http://illegalargumentexception.blogspot.co.uk/2008/04/c- файл-hex-dump-application.html, а затем скомпилировать с помощью
и вы должны получить printhex.exe, который должен отображать как шестнадцатеричные, так и ascii символы.
источник
Это не идеально, но если вы действительно не хотите ничего скачивать, то вы можете попробовать использовать fc / b (т.е. сравнение файлов в двоичном режиме), чтобы сравнить этот файл с другим совершенно другим файлом, и он покажет вам шестнадцатеричный код значения каждого байта, который отличается. Вы можете получить некоторые значения, которые в обоих файлах совпадают, и поэтому могут быть пропущены из выходных данных, но вы можете узнать, происходит ли это, проверив пропущенные значения в столбце смещения.
источник
Вы можете использовать функцию PowerShell ниже вместе с Get-Content , чтобы увидеть шестнадцатеричное содержимое файлов, то есть
Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump
. Для создания файла размером 222 КБ требуется около 23 секунд, и при желании выходные данные можно перенаправить в текстовый файл, чтобы упростить проверку дампа.Вывод выглядит так:
источник
Поскольку Sublime text - мой любимый редактор, я использую его плагин для просмотра шестнадцатеричных файлов. http://facelessuser.github.io/HexViewer/
источник
Я знаю, что вы используете Emacs, но пользователи Vim могут использовать
xxd
утилиту:т.е.
источник