Le principal problème avec l'utilisation de commandes comme head
ou tail
est qu'elles sont orientées ligne et que les fichiers binaires ne le sont pas. S'ils contiennent des sauts de ligne, ils ne sont souvent pas utilisés pour représenter la fin d'une ligne et s'ils le sont, ils peuvent simplement faire partie de chaînes comme des messages de programme ou des champs de données.
Si les données sont structurées de quelque manière que ce soit, vous devez en tenir compte dans le choix des points de partage afin de ne pas casser les structures au milieu.
Si vous connaissez la structure du fichier, vous pouvez utiliser une commande telle que
dd -if input-file -of output-file ...
avec des options pour copier uniquement autant de blocs de données d'une taille spécifique à partir d'un décalage particulier (incrémenté) dans le fichier.
Il semble que la split
commande mentionnée par @egmont automatisera ce processus pour vous, mais elle semble être orientée ligne par défaut, vous devrez donc spécifier des options supplémentaires telles que --bytes count
lui indiquer la taille de chaque élément du fichier. être.
En guise de remarque, si vous ne savez pas ce qu'il y a dans un fichier, mais que vous pensez qu'il contient au moins des données textuelles significatives, la strings
commande est un excellent moyen de jeter un premier coup d'œil pour voir de quoi vous parlez.
strings -n 6 file | less
trouvera toutes les séries de caractères imprimables d'au moins six caractères et les affichera dans un téléavertisseur afin qu'ils ne volent pas sur le terminal. L'utilisation d'un nombre un peu plus grand que la valeur par défaut de 4 caractères permet d'éliminer de minuscules extraits de données qui se trouvent être imprimables, mais qui ne sont pas utilisés de cette façon dans le fichier.
Si vous devez ultérieurement explorer le fichier plus en détail avec un éditeur binaire tel que hexedit
, vous aurez des repères qui indiquent où quelque chose d'intéressant pourrait être trouvé.
strings
a une option - t x
qui précédera chaque chaîne imprimée avec son décalage dans le fichier en hexadécimal (o pour octal / d pour décimal) afin que vous sachiez où le trouver plus tard. Même les fichiers très courts sont beaucoup à traiter lorsque vous devez les regarder caractère par caractère.
split
commande.