Estoy escribiendo un script bash que necesita obtener el encabezado (primeros 10 bytes) de un archivo y luego en otra sección obtener todo excepto los primeros 10 bytes. Estos son archivos binarios y probablemente tendrán un \0
'y \n
' en los primeros 10 bytes. Parece que la mayoría de las utilidades funcionan con archivos ASCII. ¿Cuál es una buena forma de lograr esta tarea?
80
Respuestas:
Para obtener los primeros 10 bytes, como ya se señaló:
Para obtener todos menos los primeros 10 bytes (al menos con GNU
tail
):fuente
dd
idea, pero esta opción no requiere un cambio en el tamaño del búfer, por lo que funciona bien con archivos grandes. Gracias.head -c 10
hace lo correcto aquí.fuente
Puede usar el
dd
comando para copiar un número arbitrario de bytes de un archivo binario.dd if=infile of=outfile1 bs=10 count=1 dd if=infile of=outfile2 bs=10 skip=1
fuente
dd
no es confiable. Puede leer menos bytes de los solicitados por muchas razones diferentes.{ printf a; sleep 1; printf b; } | dd bs=2 count=1 2>/dev/null | wc -c