Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer les N premiers bits d'un ficheir binaire

13 réponses
Avatar
donutman
Bonjour =E0 tous,

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

J'avais pens=E9 =E0 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=E9es ?

Merci d'avance !

Pierre

10 réponses

1 2
Avatar
Olivier Miakinen
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.
Avatar
Stephane CHAZELAS
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
Avatar
donutman
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
Avatar
Stephane CHAZELAS
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
Avatar
Thierry B.
--{ 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... }--
Avatar
Nicolas George
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.
Avatar
Eric Levenez
Le 10/07/08 19:55, dans <48764d20$0$10810$, « Nicolas
George » <nicolas$ a écrit :

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.

<http://en.wikipedia.org/wiki/Octet_%28computing%29>

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Avatar
Nicolas George
Eric Levenez wrote in message <C49C1BD5.D2215%:
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 ?
Avatar
Eric Levenez
Le 10/07/08 21:09, dans <48765e5e$0$18581$, « Nicolas
George » <nicolas$ a écrit :

Eric Levenez wrote in message <C49C1BD5.D2215%:
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 -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Avatar
Nicolas George
Eric Levenez wrote in message <C49C3139.D222A%:
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 !
1 2