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
ddidea, 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 10hace lo correcto aquí.fuente
Puede usar el
ddcomando 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=1fuente
ddno 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