El principal problema con el uso de comandos como head
o tail
es que están orientados a líneas y los archivos binarios no. Si tienen nuevas líneas, a menudo no se utilizan para representar el final de una línea y, si lo son, pueden ser parte de cadenas como mensajes de programa o campos de datos.
Si los datos están estructurados de alguna manera, entonces debe tener eso en cuenta al elegir los puntos divididos para no romper las estructuras en el medio.
Si conoce la estructura del archivo, puede usar un comando como
dd -if input-file -of output-file ...
con opciones para copiar solo tantos bloques de datos de un tamaño específico que comienzan en un desplazamiento particular (incrementado) en el archivo.
Parece que el split
comando mencionado por @egmont automatizará este proceso por usted, pero parece estar orientado a la línea de forma predeterminada, por lo que tendrá que especificar opciones adicionales como--bytes count
decirle qué tan grande debe ser cada parte del archivo ser.
Como nota al margen, si no sabe qué hay en un archivo, pero sospecha que contiene al menos algunos datos textuales significativos, el strings
comando es una excelente manera de echar un primer vistazo para ver con qué está tratando.
strings -n 6 file | less
encontrará todas las series de caracteres imprimibles de al menos seis caracteres de longitud y los mostrará en un buscapersonas para que no vuelen en el terminal. El uso de un número un poco mayor que el valor predeterminado de 4 caracteres ayuda a eliminar pequeños fragmentos de datos que simplemente se pueden imprimir, pero que no se usan de esa manera en el archivo.
Si luego tiene que explorar el archivo con más detalle con un editor binario como hexedit
, tendrá algunos puntos de referencia que indican dónde se puede encontrar algo interesante.
strings
tiene una opción: t x
precederá a cada cadena impresa con su desplazamiento en el archivo en hexadecimal (o para octal / d para decimal) para que sepa dónde encontrarla más adelante. Incluso los archivos muy cortos son mucho para tratar cuando tienes que mirarlos carácter por carácter.
split
comando.