IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Commande pour convertir un fichier DOS en UniX


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut Commande pour convertir un fichier DOS en UniX
    Bonjour,

    je dois intégrer dans un shell une commande pour convertir des fichiers DOS en fichiers UNIX .Travaillant sur des serveur AIX la commande DOS2UNIX n'éxiste pas apprement.
    La solution est d'utiliser la commande #sed# que je ne metrise pas du tout.
    L'idée est de convertir un fichier (toto.txt) d'un format DOS à UNIX.
    Pouvez-vous m'aider ?
    Merci

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 275
    Points : 13 549
    Points
    13 549
    Par défaut
    Bonjour

    La commande dos2unix s'installe.
    C'est comme la commande dos2aix qui semble mieux convenir à ta situation.

    Je déconseille le sed. Si c'est pour changer le CRLF de fin de ligne en LF, sed est envisageable. Mais pour changer ISO-machin en UTF-8, ce n'est pas une bonne idée.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    merci du retour,

    mais la la commande dos2aix n'existe pas non plus .Je travaille sur un serveur distant et donc je ne peux pas télécharger et installer cette commande .
    Suis-je donc obligé de passer par la commande ? Et si oui un exemple svp (avec un fichier dos toto.txt ) .

    Merci

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 275
    Points : 13 549
    Points
    13 549
    Par défaut
    Et la commande iconv ? Pour convertir l'encodage des caractères

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    non inconv n'est pas installée.D'ailleurs convertir un fichier DOS à UNIX c'est juste remplacer les fin de ligne par \n et changer l'encodage du fichier ?
    De toute façon je sens que je vais devoir appliquer le sed

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/^M$//g' toto.txt
    mais ça ne marche pas cae le sed ne modifie pas les fichiers en entrée .Donc j'ai essayé de diriger les modifications vers un fichier de sortie toto1.txt , puis d'écraser l'ancien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/^M$//g' toto.txt > toto1.txt | mv toto1.txt toto.txt
    Et toujours rien .
    Une idée svp ?

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 275
    Points : 13 549
    Points
    13 549
    Par défaut
    Plusieurs choses:
    • Tu vas supprimer les mauvaises fin de lignes mais cela ne changera pas le mauvais encodage du 'é'.
    • Pour changer la fin de ligne, utilise ceci:
    • Pour changer le fichier d'origine, suivant la version du sed, utilise l'option -i
    • Le pipe | envoie la sortie de la commande précédente en entrée de la commande suivante.
      Donc ce que tu à écris n'a pas de sens. Il aurait fallu mettre un point virgule entre les commande. Ou un '&&'.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    voici le code que j'ai essayé :
    Quand j'ouvre toto.txt je vois qu'il est tjours sous DOS .
    Puis j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/\r$//' toto.txt > tata.txt
    et là j'ai bien un tata.txt crée mais en DOS . Je déséspère
    Est ce que la version du sed peut être la cause ? Comment connaitre la version du SEd qu'on utilise ?

    Merci

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 112
    Points : 28 482
    Points
    28 482
    Par défaut
    Tu peux aussi utiliser tr pour cette opération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tr -s '\r\n' '\n' < entree.txt > sortie.txt

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    la solution avec tr ne donne rien .
    Peut être qu'il faudrait d'abord une commande pour afficher tous les caratères puis , les remplacer .
    UNe idée sur la syntaxe svp ?

  11. #11
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 275
    Points : 13 549
    Points
    13 549
    Par défaut
    Tu n'as pas répondu concernant la commande 'iconv'.

    Ce que tu fais ne marchera pas. C'est une question d'encodage de caractères.

    Tu cherches une solution automatique. Mais si tu n'as qu'un fichier, tu peux l'ouvrir avec emacs et changer facilement l'encodage du fichier.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    oui , la commande INCONV n'existe pas chez moi .Je rappelle mon contexte : dans le cadre d'une creation d'un scrip en shell (ksh) ,je cherche une commande(que je vais intégrer dans mon script via une fonction, qui converti des fichiers DOS en UNIX.Donc je ne cherche pas de solution manuelle. Pour info je travaille sur des serveurs AIX.

    Merci

  13. #13
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 275
    Points : 13 549
    Points
    13 549
    Par défaut
    La commande INCONV n'existe chez personne puisque c'est iconv ....

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    Oui Flodelarab pardon c'est iconv . Heureusement que tu es là

Discussions similaires

  1. [Eclipse 3.0.1] Convertir des sources Dos en Unix
    Par Bicnic dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 22/09/2009, 17h38
  2. commande pour trouver un fichier sur le disque dur...
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 11/11/2005, 01h10
  3. Commande pour analyser un fichier avec lex et yacc
    Par gRaNdLeMuRieN dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 13/09/2005, 20h12
  4. [langage] fichier DOS et unix, retour chariot Mac unix
    Par Kinethe dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2004, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo