web-dev-qa-db-fra.com

Comment obtenir uniquement les dix premiers octets d'un fichier binaire

J'écris un script bash qui a besoin d'obtenir l'en-tête (10 premiers octets) d'un fichier, puis dans une autre section, je récupère tout sauf les 10 premiers octets. Ce sont des fichiers binaires et auront probablement \0'le sable \n est tout au long des 10 premiers octets. Il semble que la plupart des utilitaires fonctionnent avec les fichiers ASCII. Quelle est la bonne façon d'accomplir cette tâche?

65
User1

Pour obtenir les 10 premiers octets, comme indiqué précédemment:

head -c 10

Pour obtenir tout sauf les 10 premiers octets (au moins avec GNU tail):

tail -c+11
114
psmears

head -c 10 fait la bonne chose ici.

36
moonshadow

Vous pouvez utiliser la commande dd pour copier un nombre arbitraire d'octets à partir d'un fichier binaire.

dd if=infile of=outfile1 bs=10 count=1
dd if=infile of=outfile2 bs=10 skip=1
31
Mark Ransom