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 des blancs


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 39
    Par défaut Supprimer des blancs
    Salut a tous. j'ai un nouveau problème, et j'espere que vous pourrez m'aider.
    j'ai le fichier suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #########################################################################
    ##                                                                     ##
    ##                          XXXXXXXXXXX                                ##
    ##                          XXXXXXXXXXX                                ##
    ##                          XXXXXXXXXXX                                ##
    ##                                                                     ##
    #########################################################################
       07:21:23:491 XXDataAPInformation (0x00f98620) = {
                    request: 2712, type: 'X' - [16000.18100]->[0.0] (0)
                    tag 86 (AccessType) = 0
                    XXXessionAP (0x00f98680) = {
                        XXXxchangeInfo (0x00f98684) = {
                            sessiXXX     = 18501
                            exXXXXXXX  = XXXX
                            XXXgeLXXl = XXXX
                            tag 15 (ExeXXXXratOnHead) = 2
                            tag 38 (UnfreNormXXXXedge) = 1
                            tag 39 (AutodeUpdate) = 0 (-1, )
                            tag 45 (SendNeommand) = 1
                            tag 46 (IgnoreXXXXXssedExec) = 1
                            tag 63 (AlwaysUpSameQuote) = 1
                            tag 90 (SupXXXXXies) = 1, 2, 4, 5, 6, 7, 9, 11, 12, 17, 3
                            tag 120 (CoreTimeZone) = -800
                        }
                    }
                    }
       07:21:23:493 XXDataAPInformation (0x00fe46d8) = {
                    request: 2712, type: 'X' - [16000.18100]->[0.0] (0)
                    tag 86 (AccessType) = 0
                    XXXessionAP (0x00fe4738) = {
                        XXxchangeInfo (0x00fe473c) = {
                            sessXXX     = 18502
                            XXXXXangeXXXXe  = XXXXX
                            XXXXngeLabel = XXXXX
                            tag 15 (Exectratead) = 2
                            tag 38 (UnfreezlAcknowledge) = 1
                            tag 39 (AutomaticTradeUpdate) = 0 (-1, )
                            tag 45 (SendXXXXnd) = 1
                            tag 46 (IgnoreXXXdExec) = 1
                            tag 63 (AlXXXXameQuote) = 1
                            tag 90 (Supportlidities) = 1, 2, 4, 5, 6, 7, 9, 11, 12, 17, 3
                            tag 120 (CoreTimeZone) = -800
                        }
                    }
                    }
    et je voudrais supprimer les commentaires a udebut, et suprimer les blancs pour obtenir toutes les donnees sur une ligne
    qqch du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    - 07:21:23:491 XXDataAPInformation (0x00f98620) = {request: 2712, type: 'X' - [16000.18100]->[0.0] (0) tag 86 (AccessType) = 0 XXXessionAP (0x00f98680) = { XXXxchangeInfo (0x00f98684) = { sessiXXX     = 18501 exXXXXXXX  = XXXX  XXXgeLXXl = XXXX tag 15 (ExeXXXXratOnHead) = 2    tag 38 (UnfreNormXXXXedge) = 1 tag 39 (AutodeUpdate) = 0 (-1, ) tag 45 (SendNeommand) tag 46 (IgnoreXXXXXssedExec) = 1 tag 63 (AlwaysUpSameQuote) = 1 tag 90 (SupXXXXXies) = 1, 2, 4, 5, 6, 7, 9, 11, 12, 17, 3 tag 120 (CoreTimeZone) = -800 }  } }
    - 07:21:23:493 XXDataAPInformation (0x00fe46d8) = { request: 2712, type: 'X' - [16000.18100]->[0.0] (0) tag 86 (AccessType) = 0  XXXessionAP (0x00fe4738) = {  XXxchangeInfo (0x00fe473c) = { sessXXX     = 18502  XXXXXangeXXXXe  = XXXXX XXXXngeLabel = XXXXX tag 15 (Exectratead) = 2  tag 38 (UnfreezlAcknowledge) = 1  tag 39 (AutomaticTradeUpdate) = 0 (-1, )  tag 45 (SendXXXXnd) = 1 tag 46 (IgnoreXXXdExec) = 1 tag 63 (AlXXXXameQuote) = 1  tag 90 (Supportlidities) = 1, 2, 4, 5, 6, 7, 9, 11, 12, 17, 3 tag 120 (CoreTimeZone) = -800  } } }

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while(<>)
    {
        chomp;
        if (!(/^#/)) {
        s/\s+/ /g;           # compress spaces
      	s/\Z\s\s\A\s/\n-/; # detect end &beginning of line
        print;
       }
    }
    print "\n";
    on dirait que ca ne reconnait pas le \Z..
    qqn a une piste?

    j'ai aussi essaye ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while(<>)
    {
        chomp;
        if (!(/^#/)) {
        s/\s+/ /g;           # compress spaces
      	s/\}\s\s\}\s\s\}\s/\n-/; # detect end &beginning of line
        print;
       }
    }
    print "\n";
    Je crois que je commence a voir ou est le probleme. Je crois que des qu'il trouve un } il le supprime, et donc la condition } } } n'est jms verifiee

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while(<>)
    {
        chomp;
        if (!(/^#/)) {
        s/\s+/ /g;           # compress spaces
      	s/\Z\s\s\A\s/\n-/; # detect end &beginning of line
        print;
       }
    }
    print "\n";
    on dirait que ca ne reconnait pas le \Z..
    qqn a une piste?[/QUOTE]
    Vouloir matcher quelque chose APRES (\Z) la fin de la chaine échoue toujours.

    As-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      	s/$\s\s\A\s/\n-/m; # detect end &beginning of line
    (moi pas encore, mais si tu dis que ça marche pas, je me pencherai de plus près)

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 39
    Par défaut
    As-tu essayé :
    Code :

    s/$\s\s\A\s/\n-/m; # detect end &beginning of line
    A l'instant, et ca me ressort une ligne, c'est a dire qu'il ne fait pas la deuxieme substitution.
    ca me ressort exactement (en modifiant juste les caracteres) et non les espaces ni metacaracteres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     07:21:23:491 XXXXXXformation (0x00f98620) = {  reXXst: 2712, type: 'X' - [16000.18100]->[0.0] (0)  tag 86 (AXXXssType) = 0  XXXXsionAP (0x00f98680) = {  XXXXXgXXfXXo (0x00f98684) = {  sXXXXX = 18501  exchangeName = XXX  exchXXXXXbel = XXXX  tag 15 (EXXXXXnHead) = 2  tag 38 (UnXXXXXlAcknoXXXe) = 1  tag 39 (AXXXXXXXXate) = 0 (-1, )  tag 45 (SeXXXXXlComXXXd) = 1  tag 46 (IgXXXXdyProcessedExec) = 1  tag 63 (AlwaysUpdateSameQuote) = 1  tag 90 (SupportedValidities) = 1, 2, 4, 5, 6, 7, 9, 11, 12, 17, 3  tag 120 (CoreTimeZone) = -800  }  }  }  07:21:23:493 XXXXAPInformation (0x00fe46d8) = {  request: 2712, type: 'X' - [16000.18100]->[0.0] (0)  tag 86 (AccessType) = 0  XXXXXAP (0x00fe4738) = {  XXXngeInfo (0x00fe473c) = {  seXXsiXXX = 18502  excXXXgeName = XXXX  exchangeLabel = XXXX  tag 15 (ExecuteStratOnHead) = 2  tag 38 (UnfreezeXXXXwledge) = 1  tag 39 (AuXXXdate) = 0 (-1, )  tag 45 (SendNXXXmmand) = 1  tag 46 (IgnoreXXXXedExec) = 1  tag 63 (AlwaXXXXeQuote) = 1  tag 90 (SupportedValidities) = 1, 2, 4, 5, 6, 7, 9, 11, 12, 17, 3  tag 120 (CoreTimeZone) = -800  }  }  }

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s/$\s\s^\s/\n-/gm; # detect end &beginning of line
    (je n'avais pas vu l'usage de \A à remplacer par ^)

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Par ailleurs, je te conseille d'utiliser \s* au lieu d'un nombre fixe de \s... au cas où

  6. #6
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 39
    Par défaut
    ce coup ci, ca retourne a la ligne a chaque espace

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

Discussions similaires

  1. [MySQL] supprimer les blancs dans des données
    Par lousa005 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/03/2011, 15h56
  2. supprimer des blancs à l'intérieur d'une chaine
    Par viny dans le forum ActionScript 3
    Réponses: 7
    Dernier message: 09/03/2010, 20h10
  3. Supprimer des Blancs
    Par BBert dans le forum AS/400
    Réponses: 2
    Dernier message: 11/03/2009, 17h30
  4. Supprimer des fichiers blancs
    Par melmouj dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 05/12/2005, 15h38
  5. Réponses: 2
    Dernier message: 12/01/2004, 14h56

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