A voir également:
- [Gnome terminal] codage des caractères
- Codage ascii - Guide
- Commande terminal mac - Guide
- Codage binaire - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
16 réponses
Re
j'ai lancé le script mais ça na rien créé, pas de répertoire /tmp/man
Ce problème survient aussi quand un fichier comprend un caractère accentué dans son nom, mais seulement pour des fichiers créés automatiquement, quand je crée un fichier moi même il n'y a pas de problème.
j'ai lancé le script mais ça na rien créé, pas de répertoire /tmp/man
Ce problème survient aussi quand un fichier comprend un caractère accentué dans son nom, mais seulement pour des fichiers créés automatiquement, quand je crée un fichier moi même il n'y a pas de problème.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
15 avril 2006 à 23:03
15 avril 2006 à 23:03
Salut,
Ton problème de caractères est-il lié au pages de "man" ?
Ton problème de caractères est-il lié au pages de "man" ?
Salut
En fait c'est assez spécial : quand j'écris un caractère spécial (é, à...) il s'affiche correctement mais des fois, que ce soit dans une page de man ou le résultat d'une commande, ça m'affiche des caractères erronés.
Et à propos du codage par défaut, est-ce que tu as une idée de pourquoi ce n'est pas unicode qui est choisi ?
Merci
En fait c'est assez spécial : quand j'écris un caractère spécial (é, à...) il s'affiche correctement mais des fois, que ce soit dans une page de man ou le résultat d'une commande, ça m'affiche des caractères erronés.
Et à propos du codage par défaut, est-ce que tu as une idée de pourquoi ce n'est pas unicode qui est choisi ?
Merci
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
15 avril 2006 à 23:17
15 avril 2006 à 23:17
Re-
Je demandais pour les pages de "man" à cause de ça :
http://forum.mandrivaclub.com/viewtopic.php?t=44098&highlight=man+caract%E8re
http://forum.mandrivaclub.com/viewtopic.php?t=43320&highlight=
Sinon, pour l'Unicode c'est surement dans les préférences et paramètres à enregistrés de "Gnome-terminal" que ça se passe... désolé mais j'emploie Konsole.
Je demandais pour les pages de "man" à cause de ça :
http://forum.mandrivaclub.com/viewtopic.php?t=44098&highlight=man+caract%E8re
http://forum.mandrivaclub.com/viewtopic.php?t=43320&highlight=
Sinon, pour l'Unicode c'est surement dans les préférences et paramètres à enregistrés de "Gnome-terminal" que ça se passe... désolé mais j'emploie Konsole.
effectivement, dans les pages de man quand ce n'est pas en unicode j'ai des caractères de ce genre : é
Ãquivalent à -vET.
en Unicode ça donne ça :
\uffffquivalent \uffff -vET.
(les \uffff s'affichent comme des carrés)
Je vais essayer le script donné sur le site, mais j'ai peur que ça bousille les pages de man.
Enfin, qui ne tente rien n'a rien !
Ãquivalent à -vET.
en Unicode ça donne ça :
\uffffquivalent \uffff -vET.
(les \uffff s'affichent comme des carrés)
Je vais essayer le script donné sur le site, mais j'ai peur que ça bousille les pages de man.
Enfin, qui ne tente rien n'a rien !
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
15 avril 2006 à 23:50
15 avril 2006 à 23:50
Salut,
mais j'ai peur que ça bousille les pages de man.
Exécute le script sur des copies. Comme ça tu ne bousilles rien du tout.
Il faut toujours garder les originaux.
lami20j
mais j'ai peur que ça bousille les pages de man.
Exécute le script sur des copies. Comme ça tu ne bousilles rien du tout.
Il faut toujours garder les originaux.
lami20j
Salut lamij, merci du conseil ;-)
En exécutant draklocale j'ai pu choisir l'unicode comme codage par défaut, c'est déjà ça de fait.
Je vous redonne des nouvelles.
En exécutant draklocale j'ai pu choisir l'unicode comme codage par défaut, c'est déjà ça de fait.
Je vous redonne des nouvelles.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
15 avril 2006 à 23:58
15 avril 2006 à 23:58
Re-
Veille bien à changer la ligne de script comme suggérer dans le second lien.
De toutes façons les pages modifiées sont copiées dans "/tmp/man/" (le script quant à lui est lancé par un "$USER" normal).
Ce n'est qu'une fois les pages modifiées, et les pages comprenant des erreurs supprimées, qu'en tant que "root" tu copies les pages dans le répertoire : "/usr/share/man/fr".
Veille bien à changer la ligne de script comme suggérer dans le second lien.
De toutes façons les pages modifiées sont copiées dans "/tmp/man/" (le script quant à lui est lancé par un "$USER" normal).
Ce n'est qu'une fois les pages modifiées, et les pages comprenant des erreurs supprimées, qu'en tant que "root" tu copies les pages dans le répertoire : "/usr/share/man/fr".
Alors dans le fichier cat.1 il y a marqué ceci :
Equivalent à (avec un accent aigu sur le E)
si je fais cat cat.1 -> pas de problème ça m'affiche les caractères correctement
par contre si je fais man cat -> carré à la place du E et du à. Donc je suppose que le problème vient de man...et qu'il n'y a rien à faire.
Vous en pensez quoi ?
Equivalent à (avec un accent aigu sur le E)
si je fais cat cat.1 -> pas de problème ça m'affiche les caractères correctement
par contre si je fais man cat -> carré à la place du E et du à. Donc je suppose que le problème vient de man...et qu'il n'y a rien à faire.
Vous en pensez quoi ?
re
j'ai fait des tests avec cat :
si le fichier est UTF-8 : pas de problème, cat affiche correctement.
si c'est un autre type (ISO88xx) -> tous les caractères accentués sont mal affichés.
Par exemple, pour le fichier useradd.8
par défaut il est de type troff or preprocessor input text
voici la fin du fichier affiché avec cat :
"N'h\uffffsitez pas \uffff signaler \uffff l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
"
si je supprime le début du fichier useradd.8, il est détecté comme UTF-8 et le reste du fichier, y compris les accents, s'affichent correctement :
"N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel."
C'est quand même incroyable, qu'est-ce qu'il ne faut pas faire juste pour afficher du texte. A croire que Linux est fait exclusivement pour supporter l'affichage anglophone.
Enfin bon, si quelqu'un a une solution...
j'ai fait des tests avec cat :
si le fichier est UTF-8 : pas de problème, cat affiche correctement.
si c'est un autre type (ISO88xx) -> tous les caractères accentués sont mal affichés.
Par exemple, pour le fichier useradd.8
par défaut il est de type troff or preprocessor input text
voici la fin du fichier affiché avec cat :
"N'h\uffffsitez pas \uffff signaler \uffff l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
"
si je supprime le début du fichier useradd.8, il est détecté comme UTF-8 et le reste du fichier, y compris les accents, s'affichent correctement :
"N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel."
C'est quand même incroyable, qu'est-ce qu'il ne faut pas faire juste pour afficher du texte. A croire que Linux est fait exclusivement pour supporter l'affichage anglophone.
Enfin bon, si quelqu'un a une solution...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
16 avril 2006 à 20:00
16 avril 2006 à 20:00
Re,
Je reviens sur ce sujet puisque j'ai pensée à une autre possibilté que la manipulation avec les script que tu as trouvé sur le site donné par jipicy.
Je ne me suis pas trop cassé la tête pour trouver pourquoi, en revenche j'ai écrit un script (un decodeur) qui te permetras lire tes pages man avec les caractères français sans rien modifier.
Explications
Quand on voit un texte :
DESCRIPTION
La commande ls affiche tout d'abord l'ensemble de ses arguments
fichiers autres que des répertoires. Puis ls affiche l'ensemble des
fichiers contenus dans chaque répertoire indiqué. Si aucun argument-
L'affichage de caractères ayant le code ASCII plus grand que 127 sont codées sur plusieurs octets.
Les bits du point fort du 1er octet et formé d'une suite de 1 avec une longueur égale avec le nombre d'octets utilisé pour coder le caractère.
0XXXXXXX un octet codé de 1 à 7 bits
110XXXXX10XXXXXX 2 octets codés de 8 à 11 bits
etc.
Prénons le cas de é
- le caractère é est codé 233 en ASCII étendu - 1101001
- en utf8 sur 2 octets 11000011 1001001
233 -> 1101001 -> utf8 -> 11000011 1001001 -> 195169
Donc dans le script tu les caractères qu'ont le code plus grand que 127 je les transforme sous la forme de 2 octets (binaire) ensuite j'enlève les bits de point fort en le transformant dans la présentation binaire sur 1 octet et je convertit la code en caractère.
Voilà le script
Je reviens sur ce sujet puisque j'ai pensée à une autre possibilté que la manipulation avec les script que tu as trouvé sur le site donné par jipicy.
Je ne me suis pas trop cassé la tête pour trouver pourquoi, en revenche j'ai écrit un script (un decodeur) qui te permetras lire tes pages man avec les caractères français sans rien modifier.
Explications
Quand on voit un texte :
DESCRIPTION
La commande ls affiche tout d'abord l'ensemble de ses arguments
fichiers autres que des répertoires. Puis ls affiche l'ensemble des
fichiers contenus dans chaque répertoire indiqué. Si aucun argument-
L'affichage de caractères ayant le code ASCII plus grand que 127 sont codées sur plusieurs octets.
Les bits du point fort du 1er octet et formé d'une suite de 1 avec une longueur égale avec le nombre d'octets utilisé pour coder le caractère.
0XXXXXXX un octet codé de 1 à 7 bits
110XXXXX10XXXXXX 2 octets codés de 8 à 11 bits
etc.
Prénons le cas de é
- le caractère é est codé 233 en ASCII étendu - 1101001
- en utf8 sur 2 octets 11000011 1001001
233 -> 1101001 -> utf8 -> 11000011 1001001 -> 195169
Donc dans le script tu les caractères qu'ont le code plus grand que 127 je les transforme sous la forme de 2 octets (binaire) ensuite j'enlève les bits de point fort en le transformant dans la présentation binaire sur 1 octet et je convertit la code en caractère.
Voilà le script
#! /usr/bin/perl # use warnings; use strict; my $p1=110000; my $p2='10'; my %utf8; sub dec2bin{ my $dec = unpack("B32",pack("N",shift)); $dec =~ s/^0+(\d+)/$1/; return $dec; } sub bin2dec{ return (unpack("N",pack("B32",substr("0" x 32 . shift,-32)))); } my @t=map { dec2bin($_) } 128..255; foreach(@t){ my $v = bin2dec($_); my $utf8 = $p1 . substr($_,0,2) . $p2 . substr($_,-6); my $cle = bin2dec(substr($utf8,0,8)).bin2dec(substr($utf8,-8,8)); $utf8{$cle} = $v; } while (my $ligne = <>){ $ligne =~ s/(.)/ord($1)>127?ord($1):$1/eg; foreach my $c (keys %utf8){ $ligne =~ s/$c/chr($utf8{$c})/eg; } $ligne =~s/195/à/g;# j'ai ajouté pour à, je n'ai pas cherché pourqoui à n'est pas traité print $ligne; }Le résultat - avant
[lami20j@localhost ~]$ man cp CP(1) Manuel de l'utilisateur Linux CP(1) NOM cp - Copier des fichiers et des répertoires. SYNOPSIS cp [options] fichier chemin cp [options] fichier... répertoire Options POSIX : [-fiprR] [--] Options POSIX 1003.1-2003 supplémentaires : [-HLP] Options GNU file-utils 4.0 (forme courte) : [-abdfilprsuvxPR] [-S SUFFIXE] [-V {numbered,existing,simple}] [--backup=CONTROL] [--sparse=QUAND] [--help] [--version] [--] Options GNU file-utils 4.1 supplémentaires (forme courte) : [-HLP] [--copy-contents] [--no-preserve] [--reply=COMMENT] [--remove-destination] [--strip-trailing-slashes] [--target-direc- tory=RÃP] DESCRIPTION cp sert à copier des fichiers (et éventuellement des répertoires). On peut aussi bien copier un fichier donné vers une destination précise que copier un ensemble de fichiers dans un répertoire. Si le dernier argument correspond à un nom de répertoire, cp copie dans ce répertoire chaque fichier indiqué en conservant le même nom. Sinon, s'il n'y a que deux fichiers indiqués, il copie le premier sur le second. Une erreur se produit si le dernier argument n'est pas un répertoire, et si plus de deux fichiers sont indiqués. Par défaut, on n'effectue pas la copie de répertoires. Ainsi, si /a est un répertoire, alors « cp -r /a /b » copiera /a dans /b/a et /a/x dans /b/a/x au cas où /b existe déjà , mais il copiera /a sur /b et /a/x dans /b/x si /b n'existait pas encore. Enfin, si /b était un fichier ordinaire, la copie échouera.Le résultat filtré par le script
[lami20j@localhost ~]$ man cp | utf8_accent.pl | less CP(1) Manuel de l'utilisateur Linux CP(1) NOM cp - Copier des fichiers et des répertoires. SYNOPSIS cp [options] fichier chemin cp [options] fichier... rà169pertoire Options POSIX : [-fiprR] [--] Options POSIX 1003.1-2003 supplémentaires : [-HLP] Options GNU file-utils 4.0 (forme courte) : [-abdfilprsuvxPR] [-S SUFFIXE] [-V {numbered,existing,simple}] [--backup=CONTROL] [--sparse=QUAND] [--help] [--version] [--] Options GNU file-utils 4.1 supplémentaires (forme courte) : [-HLP] [--copy-contents] [--no-preserve] [--reply=COMMENT] [--remove-destination] [--strip-trailing-slashes] [--target-direc- tory=RàP] DESCRIPTION cp sert à copier des fichiers (et éventuellement des répertoires). On peut aussi bien copier un fichier donné vers une destination précise que copier un ensemble de fichiers dans un répertoire. Si le dernier argument correspond à un nom de répertoire, cp copie dans ce répertoire chaque fichier indiqué en conservant le même nom. Sinon, s'il n'y a que deux fichiers indiqués, il copie le premier sur le second. Une erreur se produit si le dernier argument n'est pas un répertoire, et si plus de deux fichiers sont indiqués. Par défaut, on n'effectue pas la copie de répertoires. Ainsi, si /a est un répertoire, alors « cp -r /a /b » copiera /a dans /b/a et /a/x dans /b/a/x au cas où /b existe déjà , mais il copiera /a sur /b et /a/x dans /b/x si /b n'existait pas encore. Enfin, si /b était un fichier ordinaire, la copie échouera.lami20j
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
17 avril 2006 à 07:48
17 avril 2006 à 07:48
Re,
Correction pour le message précédent
AFFICHAGE DE PAGES MAN QUI CONTIENT DES CARACTÈRES CODÉE SUR 2 OCTETS
DESCRIPTION
L'exécution du man [ commande ] affiche à la place des caractères avec accents des caractères bizarroïdes.
Ex : man find
Les bits du point fort du 1er octet et formé d'une suite de 1 avec
une longueur égale avec le nombre d'octets utilisé pour coder le caractère.
0XXXXXXX un octet codé de 1 à 7 bits
110XXXXX10XXXXXX 2 octets codés de 8 à 11 bits
Etc.
Prenons le cas de é
- le caractère é est codé 233 en ASCII étendu - 1101001
- en utf8 sur 2 octets 11000011 1001001
233 -> 1101001 -> utf8 -> 11000011 1001001 -> 195169
Donc dans le script les caractères qu'ont le code plus grand que 127
je les transforme sous la forme de 2 octets (binaire) ensuite j'enlève
les bits de point fort en le transformant dans la présentation binaire
sur 1 octet et je convertit la code en caractère.
UTILISATION
LE SCRIPT
Testé sur Mandriva 2006
[root@localhost ~]# uname -pros
Linux 2.6.12-12mdksmp AMD Turion(tm) 64 Mobile Technology MT-32 GNU/Linux
Les fichiers man avec le format .bz2 ( compressé avec bzip2 )
La commande : bzip2 -dc /usr/share/man/fr/man1/find.1.bz2 | perl man4utf8.pl | gzip -c > /usr/share/man/fr/man1/find.1.gz
1ère partie : bzip2 -dc /usr/share/man/fr/man1/find.1.bz2
Décompression sur STDOUT du fichier man
2ème partie : perl man4utf8.pl
Le script Perl peut être exécuté aussi de la manière /chemin/vers/man4utf8.pl
mais dans ce cas il faut accordé les droit d'exécution : chmod 0755 /chemin/vers/man4utf8.pl
Le résultat de la 1ère partie est lue et traitée par la commande de la 2ème partie
3ème partie : gzip -c > /usr/share/man/fr/man1/find.1.gz
La 3ème partie compresse(avec gzip) depuis STDOUT le résultat du script
UNE AUTRE FACON DE LE FAIRE
- création d'un fichier man temporaire
[root@localhost ~]# bzip2 -dc /usr/share/man/fr/man1/mkdir.1.bz2 | perl man4utf8.pl | bzip2 -c > /usr/share/man/fr/man1/mkdir_.1.bz2
- remplacer l'original
[root@localhost ~]# mv /usr/share/man/fr/man1/mkdir_.1.bz2 /usr/share/man/fr/man1/mkdir.1.bz2
mv: écraser `/usr/share/man/fr/man1/mkdir.1.bz2'?y
- affichage
[root@localhost ~]# man mkdir
SECURITE
Normalement c'est bien de travailler sur une copie de fichier, en gardant l'original intact.
Cependant les pages man peuvent être toujours réinstallés avec le gestionnaire de paquetages de votre distribution.
lami20j
Correction pour le message précédent
AFFICHAGE DE PAGES MAN QUI CONTIENT DES CARACTÈRES CODÉE SUR 2 OCTETS
DESCRIPTION
L'exécution du man [ commande ] affiche à la place des caractères avec accents des caractères bizarroïdes.
Ex : man find
NOM find - Rechercher des fichiers dans une hiérarchie de répertoires. SYNOPSIS find [chemin...] [expression] DESCRIPTION Cette page de manuel documente la version GNU de find. find parcourt les arborescences de répertoires commençant en chacun des chemins mentionnés, en évaluant les expressions fournies pour chaque fichier rencontré. L'évaluation de l'expression se fait de gauche à droite, en suivant des règles de priorité décrites dans la section OPÃRATEURS, jusqu'à ce que le résultat soit connu (par exemple la partie gauche vraie pour un opérateur OU ou fausse pour un opérateur ET).L'affichage de caractères ayant le code ASCII plus grand que 127 sont codées sur plusieurs octets.
Les bits du point fort du 1er octet et formé d'une suite de 1 avec
une longueur égale avec le nombre d'octets utilisé pour coder le caractère.
0XXXXXXX un octet codé de 1 à 7 bits
110XXXXX10XXXXXX 2 octets codés de 8 à 11 bits
Etc.
Prenons le cas de é
- le caractère é est codé 233 en ASCII étendu - 1101001
- en utf8 sur 2 octets 11000011 1001001
233 -> 1101001 -> utf8 -> 11000011 1001001 -> 195169
Donc dans le script les caractères qu'ont le code plus grand que 127
je les transforme sous la forme de 2 octets (binaire) ensuite j'enlève
les bits de point fort en le transformant dans la présentation binaire
sur 1 octet et je convertit la code en caractère.
UTILISATION
[root@localhost ~]# bzip2 -dc /usr/share/man/fr/man1/find.1.bz2 | perl man4utf8.pl | gzip -c > /usr/share/man/fr/man1/find.1.gzRESULTAT
[root@localhost ~]# man find FIND(1L) Manuel de l'utilisateur Linux FIND(1L) NOM find - Rechercher des fichiers dans une hiérarchie de répertoires. SYNOPSIS find [chemin...] [expression] DESCRIPTION Cette page de manuel documente la version GNU de find. find parcourt les arborescences de répertoires commençant en chacun des chemins men- tionnés, en évaluant les expressions fournies pour chaque fichier ren- contré. L'évaluation de l'expression se fait de gauche à droite, en suivant des règles de priorité décrites dans la section OPÉRATEURS, Jusqu'à ce que le résultat soit connu (par exemple la partie gauche vraie pour un opérateur OU ou fausse pour un opérateur ET).
LE SCRIPT
#! /usr/bin/perl # use warnings; use strict; my $p1=110_000; my $p2='10'; my %utf8; sub dec2bin{ my $dec = unpack("B32",pack("N",shift)); $dec =~ s/^0+(\d+)/$1/; return $dec; } sub bin2dec{ return (unpack("N",pack("B32",substr("0" x 32 . shift,-32)))); } my @t=map { dec2bin($_) } 128..255; foreach(@t){ my $v = bin2dec($_); my $utf8 = $p1 . substr($_,0,2) . $p2 . substr($_,2); my $cle = bin2dec(substr($utf8,0,8)).bin2dec(substr($utf8,-8)); $utf8{$cle} = $v; } while (my $ligne = <>){ $ligne =~ s/([\x80-\xDF])/ord($1)/eg; foreach my $c (keys %utf8){ $ligne =~ s/$c/chr($utf8{$c})/eg; } print $ligne; }COMMENTAIRES
Testé sur Mandriva 2006
[root@localhost ~]# uname -pros
Linux 2.6.12-12mdksmp AMD Turion(tm) 64 Mobile Technology MT-32 GNU/Linux
Les fichiers man avec le format .bz2 ( compressé avec bzip2 )
La commande : bzip2 -dc /usr/share/man/fr/man1/find.1.bz2 | perl man4utf8.pl | gzip -c > /usr/share/man/fr/man1/find.1.gz
1ère partie : bzip2 -dc /usr/share/man/fr/man1/find.1.bz2
Décompression sur STDOUT du fichier man
2ème partie : perl man4utf8.pl
Le script Perl peut être exécuté aussi de la manière /chemin/vers/man4utf8.pl
mais dans ce cas il faut accordé les droit d'exécution : chmod 0755 /chemin/vers/man4utf8.pl
Le résultat de la 1ère partie est lue et traitée par la commande de la 2ème partie
3ème partie : gzip -c > /usr/share/man/fr/man1/find.1.gz
La 3ème partie compresse(avec gzip) depuis STDOUT le résultat du script
UNE AUTRE FACON DE LE FAIRE
- création d'un fichier man temporaire
[root@localhost ~]# bzip2 -dc /usr/share/man/fr/man1/mkdir.1.bz2 | perl man4utf8.pl | bzip2 -c > /usr/share/man/fr/man1/mkdir_.1.bz2
- remplacer l'original
[root@localhost ~]# mv /usr/share/man/fr/man1/mkdir_.1.bz2 /usr/share/man/fr/man1/mkdir.1.bz2
mv: écraser `/usr/share/man/fr/man1/mkdir.1.bz2'?y
- affichage
[root@localhost ~]# man mkdir
SECURITE
Normalement c'est bien de travailler sur une copie de fichier, en gardant l'original intact.
Cependant les pages man peuvent être toujours réinstallés avec le gestionnaire de paquetages de votre distribution.
lami20j
Merci beaucoup ça marche !
par contre j'ai dû repasser en ISO 88-59 (au lieu de UTF-8 car en UTF-8 j'ai toujours des carrés à la place des caractères accentués) et le résultat des commandes s'affiche mal. Par exemple :
$ ls dfkdfjdfjkdfdf
ls dfkdfjdfjkdfdf : Aucun fichier ou répertoire de ce type
Pour convertir tous les fichiers, je vais essayer ce script, si j'endommage des fichiers je les restaurerai, je l'ai déjà fait une fois c'est pas grave.
for fichier in `find /usr/share/man/fr/ -name '*.bz2'`; do
bzip2 -dc $fichier | perl man4utf8.pl | gzip -c > `dirname $fichier`/`basename $fichier bz2`gz
done
par contre j'ai dû repasser en ISO 88-59 (au lieu de UTF-8 car en UTF-8 j'ai toujours des carrés à la place des caractères accentués) et le résultat des commandes s'affiche mal. Par exemple :
$ ls dfkdfjdfjkdfdf
ls dfkdfjdfjkdfdf : Aucun fichier ou répertoire de ce type
Pour convertir tous les fichiers, je vais essayer ce script, si j'endommage des fichiers je les restaurerai, je l'ai déjà fait une fois c'est pas grave.
for fichier in `find /usr/share/man/fr/ -name '*.bz2'`; do
bzip2 -dc $fichier | perl man4utf8.pl | gzip -c > `dirname $fichier`/`basename $fichier bz2`gz
done