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 une ligne vide


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Supprimer une ligne vide
    Bonjour a tous,

    Je dispose d'une liste de caracteres nommee $col_1 qui contient les elements suivants:

    U-234
    U-235
    Pu241


    Xe-135
    O-16
    Gd-156

    C-12
    H-1


    Je souhaiterais supprimer touets les lignes vides de maniere a obtenir:

    U-234
    U-235
    Pu241
    Xe-135
    O-16
    Gd-156
    C-12
    H-1


    J'ai essaye plusieurs choses, entre autres celle la (celle qui me semble la plus proche d'une solution):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($col_1=~/^$/){
       #print "yes \n";
       $col_1=~s/^$//;
    }
    Sur la seconde ligne, le test "print yes" fonctionne, ce qui me permet de verifier que mes lignes sont bien vides et ne contiennent pas aussi des espaces. Mais en contrepartie, ma derniere ligne de code, qui est censee supprimee la ligne vide, ne fonctionne pas.

    Avez-vous des indications qui pourraient m'aider, s'il vous plait ?
    Je vous remercie

  2. #2
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bonjour,
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
     
    # pascaloupsu # http://www.developpez.net/forums/d1472844/autres-langages/perl/langage/supprimer-ligne-vide/
    # Je souhaiterais supprimer toutes les lignes vides
     
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # MIEUX si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
     
    =pod
     
    if ($col_1=~/^$/){
    	#print "yes \n";
    	$col_1=~s/^$//;
    }
     
    Sur la seconde ligne, le test "print yes" fonctionne, ce qui me permet de verifier que mes lignes sont bien vides et ne contiennent pas aussi des espaces.
    Mais en contrepartie, ma derniere ligne de code, qui est censee supprimee la ligne vide, ne fonctionne pas.
     
    NB :
    if ($col_1=~/^$/){    # Ne prend pas en compte le retour chariot en fin de ligne
    $col_1=~s/^$//;       # Le retour chariot n'est donc pas substitué, et donc persiste...
     
    =cut
     
    __DATA__
    U-234
    U-235
    Pu241
     
     
    Xe-135
    O-16
    Gd-156
     
    C-12
    H-1

  3. #3
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    La solution de dmganges traite le cas de la suppression de lignes dans un fichier.
    Si tu souhaites supprimer des lignes directement dans un tableau perl, disons @table, il faut utiliser la fonction splice (mais il faut connaitre son indice), ou plus simplement, reconstruire le tableau à l'aide d'une fonction de filtrage de tableau (grep).
    Solution 1 :
    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
    use Data::Dumper;
    chomp(my @table = <DATA>);
    my $i = 0;
    while ($i <= $#table) {
      if ($table[$i] =~ /^$/) {
        splice @table, $i, 1;
      }
      else {
        $i++;
      }
    }
    print Data::Dumper->Dump([\@table],[qw(*table)]);
    __DATA__
    U-234
    U-235
    Pu241
     
     
    Xe-135
    O-16
    Gd-156
     
    C-12
    H-1
    Solution 2 (qui a ma préférence dans les cas d'usage courant, pour sa simplicité extrême) :
    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
    use Data::Dumper;
    chomp(my @table = <DATA>);
    @table = grep !/^$/, @table;
    print Data::Dumper->Dump([\@table],[qw(*table)]);
    __DATA__
    U-234
    U-235
    Pu241
     
     
    Xe-135
    O-16
    Gd-156
     
    C-12
    H-1
    En revanche, je n'ai pas bien compris "verifier que mes lignes sont bien vides et ne contiennent pas aussi des espaces" : ça signifie que tu veux éliminer les lignes vides ou ne contenant que des espaces ? Dans ce cas, la regexp modifiée par dmganges est celle qu'il convient d'utiliser (/^\s*$/).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  4. #4
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    @Philou67430, Bonjour,
    Question hors sujet mais qui s'apparente aux exemples :
    Est-il possible de faire un rewind sur DATA au bon endroit sans connaître précisément l'octet début de DATA ?

    Positionne au début du code.pl

    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
     
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # Si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
    print "Fin_1\n";
     
    seek DATA, 0, 0;
     
    use Data::Dumper;
    chomp(my @table = <DATA>);
    @table = grep !/^$/, @table;
    print Data::Dumper->Dump([\@table],[qw(*table)]);
     
    print "Fin_2\n";
     
    __DATA__
    U-234
    U-235
    Pu241
     
     
    Xe-135
    O-16
    Gd-156
     
    C-12
    H-1
    Sans pression
    Juste pour conserver le précieux exemple sous le coude

  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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    my $DATA_pos = tell DATA;
    my @table = <DATA>;
    seek DATA, $DATA_pos, 0;
    my @table2 = <DATA>;
    Cela dit, il est sans doute plus simple de travailler sur des copies de @table.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  6. #6
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut Ajout
    SUPERBE !
    Cela dit, il est sans doute plus simple de travailler sur des copies de @table.
    Oui certainement, ma curiosité portait sur le repositionnement sur DATA, ça me convient parfaitement.
    MERCI encore !

    [EDIT 12:42] Ajout :
    En fait tell (que je ne connaissais pas) donne la position du 'pointeur' (ici) à la fin de la boucle de lecture, soit la fin de DATA
    Donne la même taille.
    Il faut donc y retrancher la taille des données de DATA, ce qui est facile dans la mesure ou DATA se trouve en fin de fichier et est donc à calculer une seule fois : modifier seulement le code ne modifiant pas la taille des données :

    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
     
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # Si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
    print "\n\nFin_1\n";
     
    my $DATA_pos = tell;
    print "DATA_POS=$DATA_pos\n\n";
     
    seek (DATA, $DATA_pos -60, 0);
     
    use Data::Dumper;
    chomp(my @table = <DATA>);
    @table = grep !/^$/, @table;
    print Data::Dumper->Dump([\@table],[qw(*table)]);
     
    print "Fin_2\n\n";
     
    seek (DATA, $DATA_pos -60, 0);
     
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # Si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
    print "\n\nFin_3\n";
     
    __DATA__
    U-234
    U-235
    Pu241
     
     
    Xe-135
    O-16
    Gd-156
     
    C-12
    H-1
    Mais tu as raison : il est sans doute plus simple de travailler sur des copies de @table.
    MERCI !

  7. #7
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    Citation Envoyé par dmganges Voir le message
    [EDIT 12:42] Ajout :
    En fait tell (que je ne connaissais pas) donne la position du 'pointeur' (ici) à la fin de la boucle de lecture, soit la fin de DATA
    Donne la même taille.
    Il faut donc y retrancher la taille des données de DATA, ce qui est facile dans la mesure ou DATA se trouve en fin de fichier et est donc à calculer une seule fois : modifier seulement le code ne modifiant pas la taille des données :
    Désolé mais je n'ai rien compris

    Pourquoi lire la position de DATA à la fin de la première lecture ??? tu perds alors l'information de où se trouve le début, pour faire un seek ensuite, c'est essentiel (du coup, pas trop compris pourquoi le -60 : d'où sort 60 ?).
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  8. #8
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    J'ai surement loupé qqc mais si je fais :
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
    
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # Si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
    print "\n\nFin_1\n";
    
    my $DATA_pos = tell DATA;
    print "DATA_POS=$DATA_pos\n\n";
    
    seek (DATA, $DATA_pos, 0); # Sans -60 qui correspond à la taille des données de DATA
    
    use Data::Dumper;
    chomp(my @table = <DATA>);
    @table = grep !/^$/, @table;
    print Data::Dumper->Dump([\@table],[qw(*table)]);
    
    print "Fin_2\n\n";
    
    seek (DATA, $DATA_pos -60, 0);
    
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # Si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
    print "\n\nFin_3\n";
    
    __DATA__
    U-234
    U-235
    Pu241
    
    
    Xe-135
    O-16
    Gd-156
    
    C-12
    H-1
    Je n'ai pas la 2ème boucle (la tienne sur la @table)
    J'obtiens :

  9. #9
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Ok j'ai compris mon erreur :
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
     
    my $DATA_pos = tell DATA;
    print "DATA_POS=$DATA_pos\n\n";
     
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # Si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
    print "\n\nFin_1\n";
     
    seek (DATA, $DATA_pos, 0);
     
    use Data::Dumper;
    chomp(my @table = <DATA>);
    @table = grep !/^$/, @table;
    print Data::Dumper->Dump([\@table],[qw(*table)]);
     
    print "Fin_2\n\n";
     
    seek (DATA, $DATA_pos, 0);
     
    foreach my $Ligne (<DATA>) {
    	next if $Ligne =~ /^$/;
    	# next if $Ligne =~ /^\s*$/; # Si les lignes peuvent contenir des espaces
    	print $Ligne;                # Ou toutes autres instructions
    }
    print "\n\nFin_3\n";
     
    __DATA__
    U-234
    U-235
    Pu241
     
     
    Xe-135
    O-16
    Gd-156
     
    C-12
    H-1
    Effectivement tell avant la première boucle donne bien le début de DATA.
    Désolé pour la perte de temps et encore MERCI !

  10. #10
    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 : 58
    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
    Points : 5 753
    Points
    5 753
    Par défaut
    C'est parce que tu n'as pas bien lu ce que j'ai écrit

    D'abord tu mémorises la position de DATA (avec tell), puis tu lis une première fois, ensuite, tu repositionnes le handle DATA à la position retournée par tell, et enfin tu relis le contenu de DATA.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  11. #11
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    C'est parce que tu n'as pas bien lu ce que j'ai écrit

    D'abord tu mémorises la position de DATA (avec tell), puis tu lis une première fois, ensuite, tu repositionnes le handle DATA à la position retournée par tell, et enfin tu relis le contenu de DATA.
    Oui le neurone à des ratées
    Pardon !

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Voici une auter solution - Merci pour votre aide
    Merci a dmganges et Philou67430, vos solutions fonctionnent.
    Si cela vous interesse, voici une autre solution (beaucoup plus basse qualite cela dit):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    open (NUC, '>>', 'C:/nuclide_list.inp');	  
    if ($col_1=~/\w+/){
    		  print NUC "$col_1 \n";
    	  }
    En gros, je dis d'imprimer toutes les lignes commencant par une lettre dans un nouveau fichier, ignorant ainsi les lignes vides.

  13. #13
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bonjour pascaloupsu,
    Désolé d'avoir squatté ton sujet avec une question personnelle !
    La solution donnée par Philou67430 permet d'utiliser plusieurs fois le jeu d'essai.

    Attention à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    open (NUC, '>>', 'C:/nuclide_list.inp');	  
    if ($col_1=~/\w+/){
    		  print NUC "$col_1 \n";
    	  }
    Si une ligne n'est pas vide et contient seulement un ou plusieurs underscores (_) elle est copiée dans 'C:/nuclide_list.inp'.

  14. #14
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Sinon pour la question originale on peut écrire ça:
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    while(<DATA>) {
        print if /\S/
    }
     
    __DATA__
    U-234
    U-235
    Pu241
     
     
    Xe-135
    O-16
    Gd-156
     
    C-12
    H-1
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

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

Discussions similaires

  1. Supprimer une ligne vide dans un fichier texte
    Par Tibà22 dans le forum Débuter
    Réponses: 2
    Dernier message: 18/04/2011, 16h58
  2. Supprimer une ligne vide
    Par psgkiki dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/05/2009, 19h59
  3. [C#] Comment supprimer une ligne dans DataGrid ?
    Par BAUDIER dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/07/2004, 16h03
  4. supprimer une ligne avec cle etrangere
    Par BaBas dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/07/2003, 11h24
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

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