OVH Cloud OVH Cloud

Modifier les octets d'un fichier

6 réponses
Avatar
octane
Bonjour,

est il possible de modifier directement les octets d'un fichier plutot
que leur representation?

Par exemple, si je souhaite prendre un fichier, et supprimer un octet
sur deux?

Je sais qu'un court programme en C effectue ce genre de manips, mais
qu'en est il des outils shells?

Merci

6 réponses

Avatar
lhabert
:

est il possible de modifier directement les octets d'un fichier plutot
que leur representation?


Je ne comprends rien à cette phrase.

Par exemple, si je souhaite prendre un fichier, et supprimer un octet
sur deux?


while true; do
if dd bs=1 count=1 && dd bs=1 count=1 >/dev/null; then :; else break; fi
done

Mais ça va être catastrophiquement lent par rapport à un programme dans un
langage moins limité.

Avatar
Nicolas George
Luc Habert wrote in message <e2qeci$2p2q$:
while true; do
if dd bs=1 count=1 && dd bs=1 count=1 >/dev/null; then :; else break; fi
done


Pourquoi mettre la condition dans un if plutôt que directement dans le
while ?

Accessoirement, je ne crois pas que dd échoue en cas de fin de fichier.

Avatar
octane
est il possible de modifier directement les octets d'un fichier plutot
que leur representation?


Je ne comprends rien à cette phrase.


soit le fichier :
<HTML><BODY>bonjour</BODY></HTML>
une representation du fichier est:
bonjour
mais le fichier n'est pas ce qui est represente.
Je pense plus aux fichiers textes qui peuvent etre UTF ou texte, qui
ont des retours chariots non écrits ou autre chose.

Je vais essayer d'etre plus clair:
Je cherche a prendre un octet sur deux dans un flux d'octets
quelconque. Tous les octets sont dans un fichier.

while true; do
if dd bs=1 count=1 && dd bs=1 count=1 >/dev/null; then :; else b reak; fi
done


Ou est l'entree de mon fichier et sa sortie?


Avatar
Stephane Chazelas
On 27 Apr 2006 05:34:42 -0700, wrote:
Bonjour,

est il possible de modifier directement les octets d'un fichier plutot
que leur representation?

Par exemple, si je souhaite prendre un fichier, et supprimer un octet
sur deux?
[...]


$ echo abcdef | perl -ne 'BEGIN{$/=2}print substr $_,0,1'
ace


--
Stephane

Avatar
Paul Gaborit
On 27 Apr 2006 05:34:42 -0700, wrote:
Par exemple, si je souhaite prendre un fichier, et supprimer un octet
sur deux?
[...]



À (at) 27 Apr 2006 13:16:10 GMT,
Stephane Chazelas écrivait (wrote):

$ echo abcdef | perl -ne 'BEGIN{$/=2}print substr $_,0,1'
ace


Joli !

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>


Avatar
Harpo
wrote:

Je vais essayer d'etre plus clair:
Je cherche a prendre un octet sur deux dans un flux d'octets
quelconque. Tous les octets sont dans un fichier.


Tu veux les octets d'ordre pair ou d'ordre impair ?