Salut Felix, On 10/4/07, Félix Hauri <[EMAIL PROTECTED]> wrote: > Salut, > > On Tue, Oct 02, 2007 at 12:15:24PM +0200, Lloyd Dizon wrote: > > Connaissez-vous un moyen d'editer des fichier binaires en batch ? > Hmmm. que ce soit ed, sed, tr, awk ou même perl, ce n'est pas > du ``bash'', dans tous les cas, tu lance un processus tier > qui traite le boulot.
Il devrait y avoir malentendu. Par BATCH, je voulais dire en groupe. Je voulais editer des fichiers binaires en groupe--de la même manière que j'edite les fichiers texte avec ed---qui est un line editor. A la différence de sed, qui lui est un "input stream" editor. Avantage de l'ed sur sed: edition des fichiers texte "on the fly" > > Avec ed par exemple, je ferais ceci: > > > > ed $file << EOL > > g/^$/d > > w > > q > > EOL > Cela sert à supprimer les lignes vides dans un fichier texte. > comme: > $ sed '/^$/d' < $file > ( ou `` sed -i $file '/^$/d' '' pour modifier le fichier) > ( ou mieux: > $ sed '/^[[:space:]]*$/d' < $file > pour supprimer egallement les lignes ne contenant que des espaces, > mais je crois qu'on s'éloigne du sujet ;) Ce n'est pas exact car avec sed tu dois encore rediriger la sortie std vers un fichier tmp car: sed 's/tata/TOTO/' < texte.txt > texte.txt # pas possible ! Il faut faire: sed 's/tata/TOTO/' < texte.txt > texte.tmp mv texte.tmp texte.txt Avec ed, c'est ed texte.txt << EOL 1,$ s/tata/TOTO/ w q EOL Pour un groupe (batch) de fichiers texte: for file in *.txt ; do ed $file << EOL 1,$ s/tata/TOTO/ w q EOL done On peut pas faire ceci avec des fichiers binaire car ed est orienté edition des lignes. Bref, je voulais faire une substitution du code binaire dans un fichier par une autre "chaine binaire", en utilisant un ed version binaire (s'il un tel programme existait). Donc: ed = line editor sed = stream editor bed (binary ed) = block editor ?? > Maintenant, le fait est que je n'ai pas compris ta question: > Cherches-tu à supprimer les ``lignes vides'' dans un ``fichier binaire''? J'espère maintenant que tu as compris ma question, je poste le code en Perl sinon (aïe). A+ Lloyd _______________________________________________ gull mailing list [email protected] http://lists.alphanet.ch/mailman/listinfo/gull
