Tengo un archivo, un poco más grande que 500MB, que está causando algunos problemas.
Creo que el problema está en la convención de fin de línea (EOL) utilizada. Me gustaría ver el archivo en su forma cruda no interpretada (1) para confirmar la convención EOL del archivo.
¿Cómo puedo ver el "binario" de un archivo usando algo integrado en Windows 7? Preferiría evitar tener que descargar nada adicional.
(1) Mi compañero de trabajo y yo abrimos el archivo en editores de texto y muestran las líneas como cabría esperar. Pero ambos editores de texto abrirán archivos con diferentes convenciones de EOL y los interpretarán automáticamente. (TextEdit y Emacs 24.2. Para Emacs, creé un segundo archivo con solo los primeros 4 Kbytes head -c4096
en un cuadro de Linux y lo abrí desde mi cuadro de Windows.
Intenté usar el modo hexl en Emacs, pero cuando fui al modo hexl y volví al modo texto, el contenido del búfer había cambiado, agregando un ^ M visible al final de cada línea, así que no estoy confiando en eso en este momento.
Creo que el problema puede estar en los caracteres de final de línea utilizados. Los editores que mi compañero de trabajo y yo probamos (1) reconocieron automáticamente la convención de fin de línea y nos mostraron líneas. Y basado en otra evidencia, creo que la convención EOL es solo retorno de carro. (2) solo devolución.
Para saber qué hay realmente en el archivo, me gustaría ver el contenido binario del archivo, o al menos un par de miles de bytes del archivo, preferiblemente en hexadecimal, aunque podría trabajar con decimal u octal. Solo unos y ceros serían bastante difíciles de ver.
ACTUALIZAR
Excepto el que sugiere DEBUG
, todas las respuestas a continuación funcionan en cierta medida u otra. He votado a favor de cada uno de ellos como útiles. Mi pregunta estaba mal formada. Al probar cada solución sugerida, descubrí que realmente quería ver de lado a lado el contenido hexadecimal y de texto, y que quería que fuera algo donde cuando tenía el cursor sobre algo, ya sea un valor de byte o el carácter de texto, la coincidencia en el otro lado se destacaría.
De hecho, resolví mi problema cuando Emacs hexl-mode comenzó a funcionar "correctamente". Así que terminé sin usar ninguna de estas respuestas, solo probándolas (realmente debería investigar el extraño comportamiento de Emacs y presentar un informe de error).
Respuestas:
Necesita un "editor hexadecimal". He usado "Hex Editor Neo" durante años y es muy bueno. Está disponible en versiones gratuitas y de pago . (Y estoy seguro de que hay otras herramientas similares disponibles).
fuente
Si tiene powershell versión 5.0 o posterior, puede usar la
powershell
función incorporadaFormat-Hex
fuente
Format-Hex
no está disponible en mi PowerShell; Acabo de recibir un error "no reconocido"Construido, rápido y sucio: iniciar
powershell
, ejecutar:TotalCount es el recuento de bytes que desea leer del archivo.
Google 'powershell hexdump' para obtener versiones mucho más pulidas / viables.
Si tiene las herramientas del Kit de recursos de Windows (no exactamente integradas, pero cercanas) también puede usar una utilidad de línea cmd llamada
list.exe
. Es un pequeño editor con modo hexadecimal. Diseñado específicamente para trabajar con archivos grandes:fuente
list.exe /?
comando de ayuda no proporciona mucha información, pero una vez dentro del editor, simplemente presiona?
para ver los comandos.H
abre el editor Hex, yF1
alterna la forma en que se muestra el HexEsto también funciona en todo después de XP:
certutil -encodehex MyProgram.exe MyProgram.txt
XP requiere el paquete de herramientas de administración de Windows Server 2003 desde aquí:
https://www.microsoft.com/en-us/download/details.aspx?id=16770
fuente
Copie el archivo a un nombre con una
.COM
extensión, donde el nombre base no tenga más de ocho caracteres. correrDará un '
-
' aviso. Tiporepetidamente a d isplay el archivo de 128 bytes a la vez. Tipo
para mostrar 128 bytes comenzando en la dirección , que debe escribirse en hexadecimal, donde el comienzo del archivo es la dirección 100. Escriba
para mostrar desde la dirección 1 a la dirección 2 . Tipo
para mostrar num bytes (longitud) comenzando en la dirección . num también se ingresa en hexadecimal. Use
Q
para dejar de fumar.Por ejemplo,
fuente
C:\>attrib debug.exe /s
. Resultados:File not found - debug.exe
. No se pudo encontrar la declaración oficial, la depuración ya no es compatible , pero por lo que vi en la web parece que el soporte de depuración se ha eliminado hace un tiempo. Encontré DebugDiag de Microsoft. (Descarga adicional). ¿Depuración? Tal vez es compatible con la búsqueda de archivos en HEX? Entregado como un archivo .MSI. Necesita una contraseña de administrador para instalar. No soy unohead -c4096 bigFileName > smallFileName
en Linux para obtener los primeros 4 KB de los archivos. Las líneas son lo suficientemente pequeñas como para que cuatro KB tengan muchas líneas para mis propósitoshexdump -C
mientras está en Linux?HxD es un editor hexadecimal portátil, lo que significa que no es necesaria la instalación, y no es más que un único archivo exe.
http://mh-nexus.de/en/hxd/
Otra opción portátil similar es Frhed:
http://frhed.sourceforge.net/en/screenshots/
fuente
Dado que Windows 7 viene con el framework dotnet 3.5 integrado, tendrá el compilador C # incorporado, por lo que puede obtener, por ejemplo, la lista de http://illegalargumentexception.blogspot.co.uk/2008/04/c- file-hex-dump-application.html y luego compilar usando
y debería terminar con un printhex.exe que debería mostrar caracteres hexadecimales y ascii.
fuente
No es lo ideal, pero si realmente no desea descargar nada, entonces puede intentar usar fc / b (es decir, comparar archivos en modo binario) para comparar este archivo con otro archivo completamente diferente, y le mostrará el hexadecimal valores de cada byte que es diferente. Es posible que obtenga algunos valores que resultan ser los mismos en los dos archivos y, por lo tanto, puede omitirse de la salida, pero puede saber si eso sucede al verificar los valores faltantes en la columna de desplazamiento.
fuente
Puede utilizar la función de PowerShell a continuación junto con Get-Content para ver un volcado hexadecimal del contenido del archivo, es decir,
Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump
. Se tarda unos 23 segundos en volcar un archivo de 222 KB y, si lo desea, la salida se puede redirigir a un archivo de texto para facilitar el examen del volcado.La salida se ve así:
fuente
Como Sublime Text es mi editor favorito, uso su complemento para ver archivos hexadecimales. http://facelessuser.github.io/HexViewer/
fuente
Sé que estás usando Emacs pero los usuarios de Vim pueden usar la
xxd
utilidad:es decir
fuente