Esta pregunta me llegó un par de veces antes, ahora en respuesta a la pregunta Bucle a través de fragmentos de datos binarios de stdin en Bash Respuestas dadas en /programming/993434/what-language-is-to-binary -as-perl-is-to-text tampoco fueron satisfactorios.
Estoy buscando un entorno de secuencias de comandos adecuado específicamente para manejar E / S con archivos binarios. Sé que puedo usar uno de los lenguajes de programación completos (c / Python / ...) pero tienen una enorme sobrecarga de inicialización y codificación (asignación y fread / fwrite en c, cadenas de bits en Python ...) sin mencionar son menos adecuados para las secuencias de comandos (llamar a otras aplicaciones desde allí). Perl no es mejor con sus unpack
funciones, operación orientada a cadenas y sintaxis tonta.
Algo así od
, pero como lenguaje.
Lo que espero
- establecer o cambiar endianness con un solo interruptor / comando.
- especificación simple del tipo solicitado (algo así como extender bash
read var
conint32 var
,float var
etc.). - manejo de binarios a través de tuberías, omitiendo el número especificado de bytes.
- control de flujo de secuencias de comandos estándar (para / if / ...) al que estamos acostumbrados.
Me gustaría procesar datos sin procesar (fotografía, datos científicos, formatos desconocidos y mal documentados) con la misma facilidad y visión que obtienes al inspeccionar archivos ASCII. Estoy usando c
ahora, pero no es óptimo para secuencias de comandos ad-hoc, y no puede ser interactivo.
¿Alguien sabe una herramienta como esa? Sin software de interfaz gráfica de usuario clicky, por favor, debe funcionar sobre ssh, desde otros scripts, etc. "No existe" es una respuesta aceptable, pero deprimente.
perl
's unpack
(ᵔᴥᵔ)
chain = ls["-a"] | grep["-v", "\\.py"] | wc["-l"]; chain()
¿lo has visto?