Académique Documents
Professionnel Documents
Culture Documents
Conversion de données
Description des outils et astuces pour convertir différents formats de données sur un système Debian.
Les outils basés sur des standards sont de très bonne qualité mais la prise en charge des formats propriétaires est
limités.
Astuce
iconv(1) fait partie du paquet libc6 et est toujours disponible sur pratiquement tous les
système pour permettre la conversion des codages de caractères.
Vous pouvez convertir les codages de caractères d'un fichier texte par iconv(1) en effectuant ce qui suite :
$ iconv -f codage1 -t codage2 entrée.txt >sortie.txt
La valeur des codage n'est pas sensible à la casse et ignore « - » et « _ » pour la correspondance. On peut vérifier
quels sont les codage pris en charge à l'aide de la commande « iconv -l ».
valeur de
utilisation
codage
American Standard Code for Information Interchange (Code américain standard pour l'échange
ASCII.
d'informations), code sur 7 bits sans caractère accentué
UTF-8 norme actuelle multi-langues pour tous les systèmes d'exploitation modernes
ISO-8859-1 ancienne norme pour les langues d'Europe de l'ouest, ASCII + lettres accentuées
ISO-8859-2 ancienne norme pour les langues d'Europe de l'est, ASCII + lettres accentuées
ISO-8859-15 ancienne norme pour les langues d'Europe de l'ouest, ISO-8859-1 avec le signe euro
page de code 850, caractères de DOS Microsoft avec graphiques pour les langues de l'Europe de
CP850
l'est, variante de ISO-8859-1
CP932 page de code 932, variante style Microsoft Windows de Shift-JIS pour le japonais
page de code 936, variante style Microsoft Windows de GB2312, GBK ou GB18030 pour le
CP936
chinois simplifié
page de code 949, variante style Microsoft Windows de EUC-KR de « Unified Hangul Code »
CP949
pour le coréen
CP950 page de code 950, variante style Microsoft Windows de Big5 pour le chinois traditionnel
CP1251 page de code 1251, encodage de style Microsoft Windows pour l'alphabet cyrillique
page de code 1252, variante style Microsoft Windows de ISO-8859-15 pour les langues d'Europe
CP1252
de l'ouest
KOI8-R ancienne norme UNIX de russe pour l'alphabet cyrillique
ISO-2022-JP codage standard du courrier électronique japonais qui n'utilise que des codes à 7 bits
eucJP ancien code UNIX de japonais sur 8 bits et complètement différent de Shift-JIS
Shift-JIS norme JIS X 0208 Annexe 1 pour le japonais (voir CP932)
Note
Certains codages ne sont pris en compte que pour la conversion de données et ne sont pas
utilisés en tant que valeur de paramètre linguistique (Section 8.3.1, « Bases du codage »).
Pour les jeux de caractères qui tiennent dans un seul octet tels que les jeux de caractères ASCII et ISO-8859, le
codage des caractères signifie à peu près la même chose que le jeu de caractères.
Pour les jeux de caractères ayant de nombreux caractères tels que JIS X 0213 pour le japonais ou Universal
Character Set (UCS, Unicode, ISO-10646-1) (jeu de caractère universel) pour pratiquement toutes les langues, il y a
de nombreux schémas de codage pour les insérer dans les séquences d'octets de données.
EUC et ISO/IEC 2022 (connu aussi en tant que JIS X 0202) pour le japonais
UTF-8, UTF-16/UCS-2 et UTF-32/UCS-4 pour l'Unicode
Pour ceux-ci, il y a une différence claire entre le jeu de caractères et le codage des caractères.
Page de code est utilisée comme synonyme de table de codage de caractères pour certaines d'entre-elles spécifiques
au fournisseur.
Note
Veuillez remarquer que la plupart des systèmes de codage partagent le même code avec ASCII
pour les caractères sur 7 bits. Mais il y a quelques exceptions, lors de la conversion de
programmes C et des données d'URL anciens en japonais depuis ce qui est parfois appelé
format de codage shift-JIS vers le format UTF-8, utilisez « CP932 » comme nom de codage
plutôt que « shift-JIS » afin d'obtenir le résultat attendu : 0x5C → « \ » et 0x7E → « ~ ».
Sinon, ils seront convertis vers les mauvais caractères.
Astuce
On peut aussi utiliser recode(1) qui offre plus de fonctionnalités que celles combinées de
iconv(1), fromdos(1), todos(1), frommac(1) et tomac(1). Pour plus de détails, voir « info
recode ».
Astuce
Use "--verbose" option in the above example to find the first non-UTF-8 character.
La variable « $ENCDN » devra être définie à la valeur du codage venant de Tableau 11.2, « Liste de valeurs de
codage et leur utilisation ».
Pour les cas plus compliqués, veuillez monter le système de fichiers (par exemple une partition d'un disque dur)
contenant de tels noms de fichiers avec le codage correct comme option de mount(8) (voir Section 8.3.6, « Coder
les noms de fichiers ») et copier son contenu complet vers un autre système de fichiers monté en UTF-8 avec la
commande « cp -a ».
11.1.4. conversion EOL (fin de ligne)
Le format de fichier texte, particulièrement le code de fin de ligne (EOL), dépend de la plateforme.
Les programmes de conversion du format des fins de lignes (EOL), fromdos(1), todos(1), frommac(1) et tomac(1)
sont assez pratiques. recode(1) peut aussi être utile.
Note
Certaines données Some sur un système Debian, telles que les données de la page wiki du
paquet python-moinmoin, utilisent le CR-LF de style MSDOS style CR-LF comme code de
fin de ligne (EOL). La règle précédente n'est donc que générale.
Note
La plupart des éditeurs (par exemple vim, emacs, gedit, …) peuvent prendre en compte de
manière transparente les fichiers ayant une fin de ligne (EOL) de style MSDOS.
Astuce
L'utilisation de « sed -e '/\r$/!s/$/\r/' » en remplacement de todos(1) est préférable
lorsque vous désirez unifier le style de caractère de fin de ligne vers le style MSDOS depuis un
style mixte MSDOS et Unix. (Par exemple, après avoir fusionné deux fichiers de style MSDOS
avec diff3(1).) Ceci parce que todos ajoute un retour charriot (CR) à toutes les lignes.
Tableau 11.4. Liste des commande de conversion de TAB des paquets bsdmainutils et coreutils
Des programme d'édition tels que vim et emacs peuvent aussi être utilisés pour la conversion des tabulations. Par
exemple avec vim, vous pouvez étendre les tabulation avec la séquence de commandes « :set expandtab » et
« :%retab ». Vous pouvez revenir en arrière de cette conversion par la séquence de commandes « :set
noexpandtab » et « :%retab! ».
Les éditeurs de textes modernes et intelligents comme le programme vim sont assez habiles et prennent assez bien
en compte les système de codage des caractères et tous les formats de fichiers. Vous devriez utiliser ces éditeurs
avec les paramètres linguistiques UTF-8 dans une console compatible avec UTF-8 pour une meilleure compatibilité.
Un ancien fichier texte Unix d'Europe de l'ouest, « u-file.txt » enregistré dans le codage latin1 (iso-8859-1) peut
être édité avec vim de la manière suivante :
$ vim u-file.txt
Ceci est possible car le mécanisme d'auto-détection du codage du fichier dans vim suppose d'abord que le codage
est UTF-8 et, s'il échoue, suppose qu'il est latin1.
Un ancien fichier texte en polonais, « pu-file.txt », enregistré avec le codage latin2 (iso-8859-2) peut être édité
avec vim de la manière suivante :
$ vim '+e ++enc=latin2 pu-file.txt'
Un ancien fichier texte Unix en japonais, « ju-file.txt », enregistré avec le codage eucJP peut être édité avec
vim de la manière suivante :
Un ancien fichier MS-Windows en japonais, « jw-file.txt », enregistré dans le codage appelé shift-JIS (plus
précisément : CP932) peut être édité avec vim de la manière suivante :
$ vim '+e ++enc=CP932 ++ff=dos jw-file.txt'
Lorsqu'un fichier est ouvert avec les options « ++enc » et « ++ff », « :w » sur la ligne de commande de Vim
l'enregistre dans son format d'origine et écrase le fichier d'origine. Vous pouvez aussi indiquer le format
d'enregistrement et le nom du fichier sur la ligne de commande de Vim, par exemple, « :w ++enc=utf8
nouveau.txt ».
Veuillez vous rapporter à mbyte.txt « multi-byte text support » dans l'aide en ligne de vim et Tableau 11.2, « Liste
de valeurs de codage et leur utilisation » pour les valeurs de paramètres linguistiques utilisés avec « ++enc ».
Ce qui suit permet de lire une page web sous forme de fichier texte. C'est très utile pour copier des informations de
configuration depuis le Web ou pour appliquer des outils textuels de base de Unix comme grep(1) à la page web .
$ w3m -dump http://www.site-distant.com/help-info.html >fichier-texte
De la même manière, vous pouvez extraire des données en texte brut vers d'autres formats en utilisant ce qui suit :.
Tableau 11.5. Liste d'outils pour extraite des données en texte brut
Tableau 11.6. Liste des outils pour mettre en évidence des données de texte brut
« Qu'est-ce qu'XML ? »
« Qu'est-ce qu'XSLT ? »
« Qu'est-ce qu'XSL-FO ? »
« Qu'est-ce qu'XLink ? »
Le texte en XML ressemble un peu à HTML. Il vous permet de gérer de nombreux format de sortie pour un
document. Un système XML facile est le paquet docbook-xsl qui est utilisé ici.
Un élément XML dont le contenu est vide est balisé de la façon raccourcie suivante :
<name attribute="value"/>
En plus d'ajouter des balises, XML demande des conversion mineures de contenu en utilisant des entités
prédéfinies pour les caractères suivants :
Attention
« < » ou « & » ne peuvent pas être utilisés dans des attributs ni des éléments.
Note
Lorsqu'on utilise des entités définies par l'utilisateur de style SGML, par exemple
« &some-tag: » , la première définition prend le pas sur les suivantes . La définition de l'entité
est exprimée par « <!ENTITY une-balise "valeur entité">".
Note
Dans que la balisage XML est fait de manière cohérence avec un jeu particulier de nom de
balises (soit certaines données comme valeur de contenu ou d'attribut), la conversion vers un
autre XML est une tâche triviale en utilisant Extensible Stylesheet Language Transformations
(XSLT).
11.2.2. traitement XML
Il existe de nombreux outils pour traiter les fichiers XML tels quele langage extensible de feuilles de style (« the
Extensible Stylesheet Language XSL «).
De base, une fois créé un fichier XML correctement formaté, vous pouvez le convertir vers n'importe quel format
en utilisant le langage extensible de transformation des feuilles de style (XSLT) (« Extensible Stylesheet Language
Transformations »).
Le Langage extensible de feuilles de style pour le formatage des objets (XSL-FO) (« Extensible Stylesheet
Language for Formatting Object » est censé être la solution au formatage. Le paquet fop se trouve encore dans
l'archive contrib de Debian (pas dans main). Le code LaTeX est donc habituellement créé depuis XML en
utilisant XSLT, et le système LaTeX est utilisé pour créer des fichiers imprimables comme DVI, PostScript et PDF.
Comme XML est un sous-ensemble du Langage généralisé de balisage ( Standard Generalized Markup Language
SGML »), il peut être traité par les nombreux outils disponibles pourSGML, comme Document Style Semantics and
Specification Language (DSSSL).
Astuce
yelp de GNOME est parfois pratique pour lire les fichiers XML DocBook directement car il
effectue un rendu propre sous X.
Vous pouvez convertir les fichiers HTML non-XML en XHTML qui est une instance XML correctement formatée.
XHTML peut être traité par les outils XML.
Une fois qu'un fichier XML propre est créé, vous pouvez utiliser la technologie XSLT pour extraire des données
dans le contexte de balisage, etc.
11.3.1. Ghostscript
Le cœur de la manipulation des données imprimables est l'interpréteur Ghostscript PostScript (PS) qui génère une
image tramée (« raster image »).
La licence de la dernière version amont de Ghostscript par Artifex a été modifiée d'AFPL ver GPL et fusionnée
avec les dernières modifications de version d'ESP telles que celles relatives à CUPS version 8.60 sous forme d'une
version unifiée.
Tableau 11.12. Liste des interpréteurs Ghostscript PostScript
Astuce
« gs -h » permet d'afficher la configuration de Ghostscript.
Vous pouvez fusionner deux fichiers PostScript (PS) ou Portable Document Format (PDF) en utilisant gs(1) de
Ghostscript.
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sFichierSortie=blabla.ps -f toto1.ps toto2.ps
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sFichierSortie=blabla.pdf -f toto1.pdf toto2.pdf
Note
Le format PDF qui est un format imprimable multi-plateformes largement utilisé, est
essentiellement un format PS compressé avec quelques fonctionnalités et extensions
supplémentaires .
Astuce
En ligne de commande, psmerge(1) et d'autres commandes du paquet psutils sont utille pour
manipuler des documents PostScript. Les commandes issues du pdfjam fonctionnent de
manière similaires pour la manipulation de documents PDF. pdftk(1) issu du paquet pdftk est
aussi utile pour la manipulation de documents PDF.
Vous pouvez imprimer 3 copies d'un fichier en utilisant une des commandes suivantes :
$ lp -n 3 -o Collate=True NomFichier
Vous pouvez personnaliser davantage le fonctionnement de l'imprimante en utilisant des options d'impression telles
que « -o number-up=2 », « -o page-set=even », « -o page-set=odd », « -o scaling=200 », « -o natural-
scaling=200 », etc., documentée sur Impression et options en ligne de commande.
11.4. Composition
Le programme Unix troff, développé à l'origine par AT&T, peut être utilisé pour une composition simple. Il est
habituellement utilisé pour créer des pages de manuel.
TeX, créé par Donald Knuth, est un outil très puissant de composition et c'est le standard de fait. LaTeX, écrit à
l'origine par Leslie Lamport permet un accès de haut niveau à la puissance de TeX.
Traditionnellement, roff est le système de traitement de texte principal sous Unix. Voir roff(7), groff(7),
groff(1), grotty(1), troff(1), groff_mdoc(7), groff_man(7), groff_ms(7), groff_me(7), groff_mm(7),
et« info groff ».
Vous pouvez lire pu imprimer un bon didacticiel et document de référence sur la macro « -me » dans « /usr/share
/doc/groff/ » en installant le paquet groff.
Astuce
« groff -Tascii -me - » produit une sortie en texte brut avec du code d'échappement
ANSI. Si vous désirez obtenir une sortie semblable à une page de manuel avec de nombreux
« ^H » et « _ », utilisez plutôt « GROFF_NO_SGR=1 groff -Tascii -me - ».
Astuce
Pour supprimer les « ^H » et les « _ » d'un fichier texte issu de groff, filtrez le par « col -b
-x ».
11.4.2. TeX/LaTeX
La distribution logicielle TeX Live offre un système TeX complet. Le méta-paquet texlive fournit une sélection
acceptable des paquets de TeX Live qui devraitsuffire aux tâches les plus courantes.
C'est l'environnement de composition typographique le plus puissant. De nombreux processeurs SGML l'utilisent
comme processeur de texte en « backend ». Lyx qu'on trouvera dans le paquet lyx et GNU TeXmacs qui provient
du paquet texmacs offrent un environnement d'édition agréable en mode WYSIWYG pour LaTeX bien que
nombreux sont ceux qui choisissentd'utiliser Emacs et Vim pour éditer les sources.
Lorsque les documents deviennent plus importants, TeX cause parfois des erreurs.Vous devez augmenter la taille
de l'espace dans « /etc/texmf/texmf.cnf » (ou, de manière plus rigoureuse, éditez « /etc/texmf/texmf.d
/95NonPath » et lancez update-texmf(8)) afin de corriger ceci.
Note
Le source TeX de « The TeXbook » se trouve sur http://tug.ctan.org/tex-archive/systems
/knuth/dist/tex/texbook.tex.
Ce fichier contient la plupart des macros nécessaires. J’ai entendu dire que vous pouvez traiter ce document avec
tex(1) après avoir commenté les lignes 7 à 10 et ajouté « \input manmac \proofmodefalse ». Je recommande
vivement l'achat de ce livre (et de tous les autres livres de Donald E. Knuth) plutôt que d'utiliser la version en ligne
mais les source sont un très bon exemple d'entrée de TeX !
mot
paquet popcon taille description
clé
sharutils
V:3, I:46 948 mail shar(1), unshar(1), uuencode(1), uudecode(1)
*
mpack * V:2, I:36 84 MIME encodeur et décodeur de messages MIME : mpack(1) et munpack(1)
V:0.5, dépaqueter des attachements MIME de type « application/ms-tnef » qui
tnef * 164 ms-tnef
I:1.5 est un format propre à Microsoft
V:0.19, encodeur et décodeur pour les formats suivants : uuencode, xxencode,
uudeview * 132 mail
I:1.3 BASE64, quoted printable et BinHex
V:0.05,
readpst * 228 PST convertir les fichiers Outlook PST files de Microsoft vers le format mbox
I:0.3
Astuce
Le serveur de protocole Internet d'accès au messages (« d'Internet Message Access Protocol »)
version 4 (IMAP4) (voir Section 6.7, « serveur POP3/IMAP4 ») peut être utilisé pour déplacer
des courriels depuis des systèmes de courriels propriétaires si le logiciel de courriel client peut
aussi être configuré pour utiliser le serveur IMAP4.
Les données (SMTP) de courrier électroniques doivent être limitées 7 bits. Les données binaires et les données
textuelles sur 8 bits sont codées dans un format sur 7 bits avec Multipurpose Internet Mail Extensions (MIME) et la
sélection du jeu de caractères (voir Section 8.3.1, « Bases du codage »).
Le format standard d'enregistrement du courrier électronique est formaté en « mbox » selon la RFC2822 (RFC822
mise à jour). Voir mbox(5) (fournie par le paquet mutt.
Note
Pour les données de courriel non-Unix accessible par un logiciel client ne venant pas de
Debian, il est possible de dialoguer avec le serveur IMAP4, il vous faudra peut-être les
déplacer en lançant votre propre serveur IMAP4 (voir Section 6.7, « serveur POP3/IMAP4 »).
Note
Si vous utilisez d'autres formats d'enregistrement de courriel, les mettre dans le format mbox
est une bonne première étape. Un programme client souple comme mutt(1) peut être pratique
pour le faire.
Vous pouvez éclater le contenu d'une boîte à lettre en messages séparés en utilisant procmail(1) et formail(1).
Chaque message de courrier électronique peut être dépaqueté en utilisant munpack(1) qui provient du paquet mpack
(ou d'autres outils spécialisés) afin d'en obtenir le contenu codé en MIME.
Astuce
Recherchez d'autres outils pour les images en utilisant l'expression rationnelle « ~Gworks-
with::image » dans aptitude(8) (voirSection 2.2.5, « Options de la méthode de recherche
avec aptitude »).
Bien que des programmes ayant une interface graphique comme gimp(1) soient très puissants, des outils en ligne de
commande comme imagemagick(1) sont assez utiles pour la manipulation automatique d'images au moyen de
scripts.
Le format standard de fait pour les images d'appareils photo numériques est Exchangeable Image File Format
(EXIF) qui est composé d'une image au format JPEG à laquelle sont ajoutés des balises de méta-données. Il peut
contenir des informations telles que la date, l'heure ou les paramètres de l'appareil photo.
Le brevet de compression de données sans pertes Lempel-Ziv-Welch (LZW) est arrivé en fin de validité. Les
utilitaires du format Graphics Interchange Format (GIF) qui utilise la méthode de compression LZW peuvent être
maintenant librement disponibles sur un système Debian.
Astuce
Tous les appareils photons numériques ou les scanners ayant un support d'enregistrement
amovible fonctionnent sous Linux avec des lecteurs « USB storage » s'il est conforme à la
Design rule for Camera Filesystem et utilise un système de fichiers FAT. Voir Section 10.1.10,
« Périphériques d'enregistrement amovibles ».
Vous pouvez aussi extraire des données depuis le format RPM avec ce qui suit :
$ rpm2cpio fichier.src.rpm | cpio --extract