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

Langage Perl Discussion :

Supprimer les "newlines" automatiques


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Supprimer les "newlines" automatiques
    Bonjour,

    J'ai un probleme que je n'arrive pas à résoudre , il est simple :

    J'obtiens dans ma pièce jointe de (type mime) des caractère unix '$' (quand je met en mode set list vi) correspondant à des 'newline'. Ces caractères sont normaux car la RFC de MIME impose une longueur limite d'une ligne à 1000 caractère, or moi c'est plus long que ça, docn c'est normal qu'il coupe.

    Comment procéder pour coller le tout et en faire qu'une seule ligne?

    Merci d'avance

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Si tu remplaces $\n par rien, ça devrait être bon si je suppose que tu as un dollar ($) en fin de ligne.

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 18
    Points
    18
    Par défaut vous feriez ça comment du cou?
    Vous feriez ça comment avec un sed? genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       my $line;
       open FILE, '<', "mail" or die "impossible de lire le fichier";
       while( defined($line =  <FILE>) ) {
     	if ($line ~= s/\$/''/g)
    	     print $line;
      }
    Car ça ne fonctionne pas! Surement problème de regex

    merci

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 18
    Points
    18
    Par défaut erreur
    non enfait j'ai plutot testé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       open FILE, '<', "mail" or die "impossible de lire le fichier";
       while( defined($line =  <FILE>) ) {
     	$line =~ s/\$//g;
    	print  $line;	
      }
           close FILE;
    et si je redirige dans un fichier la sortie j'obtiens toujours des $ quand je fais mon :set list

    Je dois toujours avoir un problème de regex!!

    merci d'avance de votre aide

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Sans même faire de script, en unlingne, voici une possibilité :
    perl -pi.bak -e "s/\$\n$//" fichier.txt
    Cette commande sous DOS ou Linux vous permet de faire une sauvegarde du fichier original en .bak et de modifier le fichier. Je ne l'ai pas testé !!

    Peux t-on avoir un exemple de lignes du fichier ?

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 18
    Points
    18
    Par défaut retour
    on peut tester sur n'importe quel ligne enfait des que l'on retourne à la ligne,
    ce que je veux c'est l'équivalent bash du tr -d '\n'

    exemple :

    maligne1 #retour à la ligne illustré par le $
    maligne2
    Je veux obtenir le résultat :
    maligne1maligne2
    afin que mes deux lignes soit collées.

    merci

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Que donne le code ci-dessus ?

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 18
    Points
    18
    Par défaut tr -d
    less text | tr -d '\n'
    Ce code permet de supprimer les $ observés. tr = remplacer -d = delete de \n
    Je n'arrive toujours pas à traiter mon cas voici une exemple de ligne :
    C'est un fichier xml qui comporte des fin de ligne $ comme suivant :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    </ITEM></
     INSTANCE><INSTANCE name="Size Scanned Offset" cast="Int" key="false" trend="false"><ITEM end
    ='1276804800' start='1276804800'></ITEM></INSTANCE>

    Je veux donc coller le </ à instance!
    Est ce plus clair ? merci

  9. #9
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon, dans ton exemple, je ne vois pas de dollars($) . Dans ta commande sed, je crois comprendre que tu souhaites supprimer les retour chariot. Si c'est bien cela, dans ce cas, ce code suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -pi.bak -e "s/\r?\n//g" FICHIER.XML

  10. #10
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 28
    Points : 18
    Points
    18
    Par défaut résolu
    c'est ça que je cherchais!

    Je te remercie beaucoup djibril de ta patience!!

    RESOLVED!!

  11. #11
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Il faut cliquer sur résolu pour le tagguer en [RESOLU]

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

Discussions similaires

  1. Regex: supprimer les simples quotes
    Par RTK45 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/02/2012, 10h03
  2. [MySQL] Supprimer les erreurs de syntaxe dues aux quotes
    Par gotenks dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/01/2006, 16h10

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