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

Linux Discussion :

Manipulation de ligne de caractère


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 38
    Points
    38
    Par défaut Manipulation de ligne de caractère
    Bonjour,
    je voudrais appliquer un traitement à un fichier formaté comme suit:
    champ1champ2champ3champ4champ5
    champ1champ2champ3champ4champ5
    ...

    chaque champ à une taille fixe et contient un nombre quelconque de caractère, complété par des espaces pour atteindre la taille fixe.
    ex:
    champ1 : taille = 5 ,12345,
    champ2 : taille = 1 , ,
    champ3 : taille = 3 ,ab ,
    champ4 : taille = 4 ,12 ,
    champ5 : taille = 6 ,123456,

    12345 ab 12 123456

    je voudrais prendre chaque ligne du fichier et introduire un ";" entre chaque champ...

    12345; ;ab ;12 ;123456

    Je pense qu'il faut utiliser awk et sed mais je n'ai pas l'habitude de coder sous unix et j'avoue que je bloque un peu...

    Si quelqu'un peu m'aporter un peu d'aide, elle sera la bienvenue...
    Merci.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    re-bonjour,
    si mon problème n'est pas clair, n'hésitez pas à me poser des questions... je sais que c'est un peu bidon comme problème mais je galère quand même pas mal

  3. #3
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Salut,

    Alors avec un fichier comme cela :
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    AAABBBBCDDDDDDDEE
    Le code suivant fait ce que tu demandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -ie 's/\(.\{3\}\)\(.\{4\}\)\(.\{1\}\)\(.\{7\}\)/\1;\2;\3;\4;/' ./mon_fichier.txt
    Résultat :
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    AAA;BBBB;C;DDDDDDD;EE
    La longueur de chaque champ est spécifiée dans les accolades.
    Si tu intègres cette ligne dans un script, c'est bien evidemment parametrable par des variables shell...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    merci beaucoup, je commencais à désepérer... C'est vraiment gentil d'avoir pris un peu de temps pour m'aider...

  5. #5
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    Citation Envoyé par oursquetaire
    merci beaucoup, je commencais à désepérer... C'est vraiment gentil d'avoir pris un peu de temps pour m'aider...
    Y a pas de quoi
    Si tu as des questions n'hésite pas

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    ok, en fait j'ai une petite question...
    l'option -i ne fonctionne pas chez moi... du coup la commande ne fonctionne pas non plus...
    j'ai essayé sans le i et le message d'erreur est :
    sed : Function s:\... cannot be parsed

    voila, si tu as encore un peu de temps à m'accorder...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    ok autant pour moi,
    l'option -i n'est effectivement pas reconnue mais sans ca marche aussi... faut juste faire gaffe aux erreurs de frappe dans la fonction.
    Voila...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 166
    Points : 39
    Points
    39
    Par défaut
    enlève le i et garde -e


    [/code]

  9. #9
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    L'option -i permet d'éditer directement le fichier en cours, plutôt que de faire une redirection dans un fichier temporaire puis un mv...
    Mais c'est bizarre que ça ne passe pas...
    Enfin, si ton problème est résolu, c'est le principal.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Manipulation de ligne pour regroupement
    Par aucunexperience dans le forum SAS Base
    Réponses: 7
    Dernier message: 28/06/2013, 19h29
  2. (images binaires) manipulation des lignes
    Par lucastof dans le forum Images
    Réponses: 1
    Dernier message: 12/03/2011, 12h47
  3. [MySQL] manipulation premiere ligne
    Par krustypop dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 22/04/2009, 16h48
  4. Comment manipuler des lignes RichEdit avec attributs
    Par Nicolas Coolman dans le forum Débuter
    Réponses: 4
    Dernier message: 23/03/2009, 22h53
  5. Réponses: 14
    Dernier message: 07/09/2007, 22h45

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