[gull] Batch edit des fichiers binaires

Félix Hauri felix at f-hauri.ch
Thu Oct 4 22:31:35 CEST 2007


Salut,

On Tue, Oct 02, 2007 at 12:15:24PM +0200, Lloyd Dizon wrote:
> Hello,
> 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.

> 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 ;)

> Je n'ai pas trouvé un équivalent de 'ed' version binaire. Perl peut
> faire ce boulot mais j'aimerais bien une commande shell qui permet
> cela.
$ perl -pe 's/^\s*$//;' < $file
fait pareil,

La principale différence tient dans le poid de ce que tu charges:
$ ls -l $(which ed)
-rwxr-xr-x 1 root root 39544 2003-04-02 18:23 /bin/ed*
$ ldd $(which ed)
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/tls/libc.so.6 (0xf7e41000)
        /lib/ld-linux.so.2 (0xf7f8c000)

$ ls -l $(which perl)
-rwxr-xr-x 2 root root 1061700 2006-12-07 00:30 /usr/bin/perl*
$ ldd $(which perl)
        linux-gate.so.1 =>  (0xffffe000)
        libdl.so.2 => /lib/tls/libdl.so.2 (0xf7ef1000)
        libm.so.6 => /lib/tls/libm.so.6 (0xf7ecb000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0xf7eb9000)
        libc.so.6 => /lib/tls/libc.so.6 (0xf7d87000)
        libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xf7d59000)
        /lib/ld-linux.so.2 (0xf7f0e000)

Maintenant, le fait est que je n'ai pas compris ta question:
Cherches-tu à supprimer les ``lignes vides'' dans un ``fichier binaire''?

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list