Supprimer les N premiers bits d'un ficheir binaire

Le
donutman
Bonjour à tous,

savez-vous comment supprimer les N premiers bits d'un fichier binaire
sous Linux ?

J'avais pensé à la commande tail mais je devrais logiquement entrer en
argument quelquechose du genre :

tail -n (LONGUEUR DU FICHIER - N) monfichier

et je ne sais pas comment faire

Avez-vous des idées ?

Merci d'avance !

Pierre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #14564841
Le 10/07/2008 15:20, a écrit :

savez-vous comment supprimer les N premiers bits d'un fichier binaire
sous Linux ?

J'avais pensé à la commande tail mais je devrais logiquement entrer en
argument quelquechose du genre :

tail -n (LONGUEUR DU FICHIER - N) monfichier



J'allais dire « tail -n -N » ou « tail -c -N » en supposant qu'il
s'agissait respectivement de lignes ou d'octets plutôt que de bits,
mais je viens de me rendre compte que cette option qui fonctionne
pour head ne marche pas avec tail.

et je ne sais pas comment faire...



Ben moi non plus, pour le coup.
Stephane CHAZELAS
Le #14564831
2008-07-10, 06:20(-07), :
[...]
savez-vous comment supprimer les N premiers bits d'un fichier binaire
sous Linux ?

J'avais pensé à la commande tail mais je devrais logiquement entrer en
argument quelquechose du genre :

tail -n (LONGUEUR DU FICHIER - N) monfichier

et je ne sais pas comment faire...

Avez-vous des idées ?


[...]

Si tu voulais dire byte (octets) au lieu de bits:

tail -c +<N+1>
ou
dd bs=1 skip=<N> < monfichier

Pour les lignes:

tail -n +<N+1> monfichier

Pour les bits, diviser par 8. Si pas multiple de 8, alors faudra
transformer tous les octets du fichiers.

--
Stéphane
donutman
Le #14569201
On 10 juil, 15:55, Stephane CHAZELAS wrote:
2008-07-10, 06:20(-07), :
[...]> savez-vous comment supprimer les N premiers bits d'un fichier bina ire
> sous Linux ?

> J'avais pensé à la commande tail mais je devrais logiquement entrer en
> argument quelquechose du genre :

> tail -n (LONGUEUR DU FICHIER - N) monfichier

> et je ne sais pas comment faire...

> Avez-vous des idées ?

[...]

Si tu voulais dire byte (octets) au lieu de bits:

tail -c +<N+1>
ou
dd bs=1 skip=<N> < monfichier

Pour les lignes:

tail -n +<N+1> monfichier

Pour les bits, diviser par 8. Si pas multiple de 8, alors faudra
transformer tous les octets du fichiers.

--
Stéphane




Bonjour Stéphane,

je suis désolé, je n'ai absoument rien compris à ton explication...
Peux-tu me détailler les étapes plus explicitement ?

Merci beaucoup !

Pierre
Stephane CHAZELAS
Le #14577811
2008-07-10, 07:10(-07), :
[...]
Si tu voulais dire byte (octets) au lieu de bits:

tail -c +<N+1>
ou
dd bs=1 skip=<N> < monfichier




[...]
je suis désolé, je n'ai absoument rien compris à ton explication...
Peux-tu me détailler les étapes plus explicitement ?


[...]

tail -c +4 < monfichier

te sort a "queue" de monfichier a partir du 4e octet (donc,
enleve les 3 premiers).

dd bs=1 skip=3 < monfichier

skip (ommet) les 3 premiers blocs (et chaque bloc fait 1 byte bs
== block-size) et affiche le reste de monfichier.

Le plus petit element manipulable sur un Unix est le "byte" qui
sur la plupart des architectures est un octet, c-a-d un groupe
de 8 bits.

Si tu as un fichier qui contient les trois octets 0x12 0x23 et
0x34 et que tu veux enlever les 4 premiers bits, ca veut dire
creer un fichier qui contient 0x22 0x33 et 0x40 (on rajoute 4
bits 0 a la fin car un fichier ne peux pas contenir des bouts
d'octets), donc ca veut dire modifier tous les octets du
fichiers. Est-ce bien ca que tu veux?

--
Stéphane
Thierry B.
Le #15331771
--{ a plopé ceci: }--


savez-vous comment supprimer les N premiers bits d'un fichier binaire
sous Linux ?



dd bs=1 skip=N




--
The normal usenet bot uses the XOVER function to scrape from usenet.
This scraping function scrapes from the From, but does not scrape from
the body or the Reply-To of messages.
--{ Ah, voilà qui rassure... }--
Nicolas George
Le #14631971
Stephane CHAZELAS wrote in message
Le plus petit element manipulable sur un Unix est le "byte" qui
sur la plupart des architectures est un octet, c-a-d un groupe
de 8 bits.



Sous Unix, un byte est toujours un octet, c'est garanti par la norme.
Eric Levenez
Le #14631961
Le 10/07/08 19:55, dans George »
Sous Unix, un byte est toujours un octet, c'est garanti par la norme.



Quelle norme ?

En C, norme ISO/IEC 9899, un byte est un multiplet qui peut valoir 8 bits ou
plus. Les normes en anglais parlent maintenant d'octet pour indiquer 8 bits
et de moins en moins utilisent le byte trop flou. C'est par exemple le cas
dans les normes télécom.


--
Éric Lévénez -- Unix is not only an OS, it's a way of life.
Nicolas George
Le #14647901
Eric Levenez wrote in message
Sous Unix, un byte est toujours un octet, c'est garanti par la norme.


Quelle norme ?



Quand je dis « sous Unix », dans un groupe consacré à Unix, la norme, à ton
avis, qu'est-ce que ça peut être ?
Eric Levenez
Le #14651031
Le 10/07/08 21:09, dans George »
Eric Levenez wrote in message
Sous Unix, un byte est toujours un octet, c'est garanti par la norme.


Quelle norme ?



Quand je dis « sous Unix », dans un groupe consacré à Unix, la norme, à ton
avis, qu'est-ce que ça peut être ?



Oui, quelle norme ?

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.
Nicolas George
Le #14657391
Eric Levenez wrote in message
Oui, quelle norme ?



Tu le fais exprès ? La norme Unix, pas la norme sur le diamètre des
concombres dans l'Union Européenne. Quelle surprise !
Publicité
Poster une réponse
Anonyme