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

AIX Discussion :

[AIX] écriture des fichiers textes sous windows et lecture sous unix


Sujet :

AIX

  1. #1
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut [AIX] écriture des fichiers textes sous windows et lecture sous unix
    Bonjour,

    Je dispose un répertoire A sous Unix partagé sous Windows via Samba

    L'application sous Windows génère un fichier de plusieurs de centaines de lignes au format texte windows (soit une fin de ligne CRLF)
    De l'autre coté, j'ai une application sous unix qui récupère le fichier texte et le lit

    Sauf que pour Unix, seul LF est interprété comme fin de ligne, donc je me retrouve avec les fameux caractères ^M

    Je cherche comment faire en ce sorte que ces fins de ligne se mettent automatiquement en LF lors du transfert sur le partage réseau ...

    PS : je n'ai pas le choix de cette architecture, imposée par le projet
    Grave urgent !!!

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    J'ai eu le même problème pour supprimer les contrôles M. J'ai fait une grouille de script utilisant awk et tr (entre autre) qui me repère les fichiers contenant des ^M (\r code hexa \x0D) et qui me les liste. il suffit par la suite de les passer un à un dans un autre scripts qui les supprime et de mettre tout ça dans un cron

    repérer les fichier contenant des ^M :

    trouve.ksh :
    read REP?"Entrez la racine de recherche :"
    for file in $(find $REP -type f 2>/dev/null)
    do
    awk '/\r/ {print}' "$file" > /tmp/toto 2>/dev/null
    if [ test $(cat /tmp/toto | wc -l) -gt 0 ] then
    echo "$file"
    fi
    done

    transformer le retour chariot en rien, deux solutions :

    - a la main quand il y a peu de fichier :

    vi fic
    :%s/.$//g

    - dans une moulinette :

    remplace.ksh :
    trouve.ksh > to_replace &&
    cat to_replace |
    while read file
    do
    mv $file /tmp/$file.orig
    cat /tmp/$file.orig | tr -d "\r" > $file
    done

    que l'on peut mettre dans un cron.
    Il est également possible de voir les retours chariots en faisant :

    cat <fichier> | od -bc

    Un grep peut aussi arranger les choses dans ce cas pour les repérer.

    Mise dans un cron toutes les minutes par exemple :

    */1 * * * * remplace.ksh 2>&1 > /dev/null

    Aux ajustations syntaxique près ça devrait fonctionner

    http://www.developpez.net/forums/ima...s/icon_bug.gif

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 71
    Points
    71
    Par défaut
    tu fait un sed sur tes fichiers :
    s/^M//g, on fait comme cela chez nous.

Discussions similaires

  1. Comment convertir des fichiers texte Windows vers Unix
    Par hornetbzz dans le forum Contribuez
    Réponses: 17
    Dernier message: 11/02/2014, 14h46
  2. lecture / écriture dans des fichiers text
    Par nadir CoCo dans le forum C++
    Réponses: 6
    Dernier message: 28/06/2012, 09h10
  3. Réponses: 0
    Dernier message: 10/10/2011, 18h40
  4. Réponses: 1
    Dernier message: 22/04/2008, 17h49

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