es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo volcar un archivo con valores de tipo float en la línea de comandos?

Tengo un archivo que contiene una secuencia sin procesar de valores de punto flotante de 4 bytes, sin encabezados, sin formatos, nada más. Quiero imprimir algunos de los valores en formato legible para los humanos, digamos desde el n-ésimo número flotante hasta el n-ésimo número flotante, inclusivo.

¿Cuál es una forma sencilla de hacer esto en un entorno de línea de comandos similar a Unix?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma de lograr esta tarea es utilizar el comando od, que se puede utilizar para volcar archivos en varios formatos. En particular, podemos utilizarlo para volcar los valores de punto flotante en el archivo como texto legible para humanos.

    Suponiendo que el archivo que contiene la secuencia cruda de valores de punto flotante de 4 bytes se llama data.bin, podemos imprimir los valores de punto flotante desde el n_1-ésimo hasta el n_2-ésimo de la siguiente manera:

    od -f -An -j $((4*(n_1-1))) -N $((4*(n_2-n_1+1))) data.bin
    

    Este comando hace lo siguiente:

    • -f especifica que el formato de salida debe ser valores de punto flotante
    • -An suprime la columna de direcciones en la salida
    • -j $((4*(n_1-1))) especifica que la volcada debe comenzar en el desplazamiento de byte 4*(n_1-1) en el archivo (ya que cada valor de punto flotante ocupa 4 bytes)
    • -N $((4*(n_2-n_1+1))) especifica que se deben imprimir n_2-n_1+1 valores de punto flotante, cada uno ocupando 4 bytes
    • data.bin es el archivo de entrada que contiene los valores de punto flotante en bruto

    Este comando debería producir la salida solicitada. Nota que n_1 y n_2 deben ser reemplazados por los índices reales de los valores de punto flotante que deseas imprimir.

Comments are closed.