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.
Le 10/07/2008 15:20, donutman@yopmail.com 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.
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
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.
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
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?
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?
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.
--{ 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... }--
--{ donutman@yopmail.com 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... }--
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
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.
Stephane CHAZELAS wrote in message
<slrng7c84b.ej6.stephane.chazelas@spam.is.invalid>:
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.
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 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.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 10/07/08 19:55, dans <48764d20$0$10810$426a74cc@news.free.fr>, « Nicolas
George » <nicolas$george@salle-s.org> 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.
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.