Publicité
+ Répondre à la discussion
Page 4 sur 5 PremièrePremière 12345 DernièreDernière
Affichage des résultats 61 à 80 sur 89
  1. #61
    Expert Confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    2 876
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 2 876
    Points : 3 841
    Points
    3 841

    Par défaut

    Salut,

    ma contribution typo-orthographique :
    Citation Envoyé par djibril Voir le message
    Merci pour ta participation, je la rajouterai dans la FAQ. Juste une précision, une phrase se termine certes par un point, mais peut aussi se terminer par un point d'exclamation ou un point d'interrogation. (...)
    Une phrase peut également se terminer par 3 points de suspension !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #62
    Membre Expert
    Homme Profil pro Alexis
    Responsable d'Exploitation
    Inscrit en
    février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexis
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'Exploitation
    Secteur : Biens de consommation

    Informations forums :
    Inscription : février 2003
    Messages : 926
    Points : 1 729
    Points
    1 729

    Par défaut

    Je dirais même qu'une phrase peut se terminer par plusieurs caractères qui se suivent :

    Sans commentaire...
    Mais que se passe-t-il ?!
    Wouhou !!!!!!!!!!!!

    Du coup, ça donnerait :
    Code :
    1
    2
    3
    perl -e "$_ =shift; $wc = split /\s/; $pc = split /[\.\?\!]+/; print qq/ $wc mots\n $pc phrases\n/;" "ma phrase à compter. Ma deuxième phrase... Une autre ? Ok :-) !!!!  Merci."
     15 mots
     5 phrases
    Pour ce qui est d'ajouter les points de suspensions "…" (Alt+0133 sous Windows), ça dépend un peu trop de l'environnement, et si on part là dedans, il faut aussi ajouter les caractères inversés par exemple (¿ et ¡)

  3. #63
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    Question: Comment modifier les formats de date dans un fichier?

    Chapitre : unilignes
    Testé sous : Linux, HP-UX, VMS, Windows (MS-DOS)

    Cette commande remplace les tirets par des slash dans le fichier (sans création d'un fichier temporaire intermédiaire) et fait donc passer les dates du format 13-09-2010 au format 13/09/2010 :

    Code :
    perl -pi -e 's/-/\//g;' fichier.txt
    Cette commande fait passer toutes les dates de tous les fichiers *.CSV en entrée du format 13/09/2010 au format 2010-09-13 :

    Code :
    perl -pi -e 's/;(\d\d)\/(\d\d)\/(\d{4})/;$3-$2-$1/g' *.csv
    Remarque: sous DOS, le *.csv n'est pas interprété correctement, il faut sans doute traiter chaque fichier individuellement, ou utiliser la syntaxe proposée par Alek-C:

    Code :
    FOR %A IN (*.CSV) DO perl -pi.bak -e "s/;(\d\d)\/(\d\d)\/(\d{4})/;$3-$2-$1/g" %A
    Cette commande fait passer toutes les dates de tous les fichiers *.txt en entrée du format “2000-10-16 17:12:23” au format “16/10/2000”:

    Code :
    perl -pi -e 's/;(\d{4})-(\d\d)-(\d\d) \d\d:\d\d:\d\d/;$3\/$2\/$1/g' *.txt
    Même remarque que précédemment sous DOS.
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  4. #64
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Question: Comment mettre en minuscules (majuscules) tous les fichiers d'un répertoire?

    Chapitre : unilignes

    Testé sous: HP-UX, Linux.

    Commande Perl qui met en minuscules tous les noms de fichiers du répertoire courant:

    Code :
    perl -e 'for (@ARGV) { rename $_, lc($_) unless -e lc($_); }' *
    Et pour mettre en majuscules les noms de fichiers commençant par “ad_” dans le répertoire courant:

    Code :
    perl -e 'for (@ARGV) { rename $_, uc($_) unless -e uc($_); }' ad_*
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  5. #65
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Question: Comment affichier la ligne n° 2 501 743 d'un fichier?
    Chapitre :
    unilignes

    Testé sous: HP-UX, Linux, VMS, MS-DOS.

    J'avais un programme perl traitant un très gros fichier. A un moment donné, j'ai le message d'erreur suivant: utilisation de valeur non initialisée à la ligne 2501743 du fichier. Comment retrouver cette ligne pour comprendre la source de l'erreur?

    Commande Perl qui affiche la ligne N° 2 501 743 d'un fichier:

    Code :
    perl -n -e '{$i++; print $_ if $i == 2501743;}' nom_fichier.txt
    Autre version plus compacte et sans doute un peu plus rapide:

    Code :
    perl -ne 'print $_ if $. == 2501743;' nom_fichier.txt
    Version encore plus compacte utilisant la variable par défaut $_ de print:

    Code :
    perl -ne 'print if $. == 2501743' nom_fichier.txt
    Autre version plus compacte pour imprimer les lignes N° 20 à 60 d'un fichier:

    Code :
    perl -ne 'print if 20 .. 60' nom_fichier.txt
    Même syntaxe pour n'imprimer qu'une seule ligne:

    Code :
    perl -ne 'print if 30..30' nom_fichier.txt
    Si le fichier est beaucoup plus gros que 2501743 lignes, la commande Perl suivante sera beaucoup plus rapide que les précédentes parce qu'elle abandonnera la recherche dès que la ligne est affichée:

    Code :
    perl -ne 'print and exit if $. == 2501743;}' nom_fichier.txt

    Commande qui affiche le numéro de ligne au début de chaque ligne d'un fichier, séparé du reste de la ligne par un espace:

    Code :
    perl -n -e 'print qq/$. $_/'  file_in
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  6. #66
    Membre Expert
    Homme Profil pro Alexis
    Responsable d'Exploitation
    Inscrit en
    février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexis
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'Exploitation
    Secteur : Biens de consommation

    Informations forums :
    Inscription : février 2003
    Messages : 926
    Points : 1 729
    Points
    1 729

    Par défaut

    Lolo78
    bon, pour certains cas, je pense que je préfèrerais sed ^^ mais il y a de très bonne idées, et surtout, ça ouvre d'autres possibilités !
    Peut-être une petite remarque pour les débutants par rapport à la partie "conversions de dates" (notamment le premier exemple) puisque tous les tirets seront convertis, qu'ils soient ou non utilisé dans une date !
    De même, dans l'exemple suivant, il faut que la date soit précédée d'un ";"

    Pour la gestion de plusieurs caractères sous dos, le plus simple que j'ai trouvé est d'utiliser FOR:
    Code :
    FOR %A IN (*.CSV) DO perl -pi.bak -e "s/;(\d\d)\/(\d\d)\/(\d{4})/;$3-$2-$1/g" %A

  7. #67
    Membre Expert
    Homme Profil pro Alexis
    Responsable d'Exploitation
    Inscrit en
    février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexis
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'Exploitation
    Secteur : Biens de consommation

    Informations forums :
    Inscription : février 2003
    Messages : 926
    Points : 1 729
    Points
    1 729

    Par défaut

    Q/R : Compter des occurences dans un fichier
    Chapitres : uniligne
    Testé sous : Linux, Windows

    La commande suivante permet de compter pour chaque ligne le nombre d’occurrences d'un motif donné... y'a ptet plus simple (avec ou sans Perl), mais je n'ai trouvé que ça rapidement ^^
    Dans mon cas, je voulais vérifier le nombre de pipe pour chaque ligne d'un fichier (en utilisant un petit | uniq après la commande suivante) :

    Code :
    > perl -ne "printf qq|%d\n|,$m=()=$_=~m/\|/g;" <fichier>
    printf réalise un print formaté
    qq|...| permet d'éviter l'utilisation des " parfois problématiques sous Windows ou dans les alias. Cette commande est équivalente à "..."
    %d\n indique à printf d'afficher le premier argument au format décimal suivi d'un saut à la ligne
    $m=()=m/\|/g; le secret, c'est l'assignation de l'expression m/\|/g à une liste anonyme () qui renvoie donc la liste des occurrences pour chaque ligne; puis, l'évaluation de cette liste dans un context scalaire avec $m=... qui provoque l'évaluation du nombre d'éléments de la liste
    voir ici pour plus de détails et d'autre opérateurs sympas

    ps.: \| est ici la chaine cherchée, on peut évidemment la remplacer...

  8. #68
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par Alek-C Voir le message
    Lolo78
    bon, pour certains cas, je pense que je préfèrerais sed ^^ mais il y a de très bonne idées, et surtout, ça ouvre d'autres possibilités !
    Peut-être une petite remarque pour les débutants par rapport à la partie "conversions de dates" (notamment le premier exemple) puisque tous les tirets seront convertis, qu'ils soient ou non utilisé dans une date !
    De même, dans l'exemple suivant, il faut que la date soit précédée d'un ";"
    Clairement, les unilignes que je propose sont adaptés aux données sur lesquelles je les utilise. En l'occurrence, il n'y a que dans les dates qu'il y avait des tirets, le reste était constitué uniquement de données alphanumériques (numéro de client, numéro de dossier, type d'offre, etc.) séparées par des points-virgules. J'ai clairement dit que ça remplaçait les tirets par des slash, par uniquement dans les dates. Ce genre d'uniligne doit généralement être adapté au problème exact à résoudre.

    Merci pour ton astucieuse suggestion sur la gestion des fichiers DOS multiples, j'ai ajouté ta proposition dans mon post.
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  9. #69
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    16 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 857
    Points : 491 003
    Points
    491 003

    Par défaut

    Bonjour,

    Je vais rajouter vos 4 unilignes Perl suivants*:
    1. Comment modifier les formats de date dans un fichier?
    2. Comment mettre en minuscules (majuscules) tous les fichiers d'un répertoire?
    3. Comment affichier la ligne n° 2 501 743 d'un fichier?
    4. Compter des occurences dans un fichier.


    Juste une petite remarque Lolo78. Lorsque tu dis que tes codes sont compatibles Windows (MS-DOS), attention car c'est faux pour la simple raison que ça ne fonctionne pas à cause des simples quotes (perl -e '' au lieu de perl -e "...").

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  10. #70
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    16 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 857
    Points : 491 003
    Points
    491 003

    Par défaut

    Vos quatre unilignes ont été rajoutés dans la FAQ Perl.

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  11. #71
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Super. Du coup j'en ajoutrerai d'autres.

    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  12. #72
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Question: Comment imprimer le quatrième mot de chaque ligne (émulation de la commande cut d'Unix)
    Chapitre : unilignes

    Testé sous: HP-UX, Linux (mais doit aussi marcher sous Windows et VMS en remplaçant les apostrophes par des guillemets)

    Imprime le quatrième mot de chaque ligne, sauf si la ligne commence par un #, le séparateur entre les mots étant le ”;” :

    Code :
    perl -naF";" -e 'next if /^#/; print qq/$F[3]\n/' fichier.txt
    Imprime le cinquième et le deuxième mot de chaque ligne, séparés par un espace, sauf si la ligne commence par un # ou par un nombre quelconque d'espaces suivis d'un # (le séparateur étant toujours le ";"):

    Code :
    perl -naF";" -e 'print qq/$F[4] $F[1]\n/ unless /^ *#/' fichier.txt
    Commande qui enlève le dernier champ d'un fichier, à condition qu'il n'y ait pas de ”;” à la fin de ce dernier champ (en fait, on veut supprimer tout ce qui suit le dernier ";")

    Le fichier exemple en entrée:

    Code :
    1
    2
    3
    4
    5
    114280099;0.0.0.1 /account 2034354645;1;0;
    114280193;0.0.0.1 /account 2034360011;1;0;[[54
    114280220;0.0.0.1 /account 2034362388;1;0;
    117805929;0.0.0.1 /account 8451327160;1;0;[[51
    ...
    On veut supprimer le dernier champ (par exemple ”[[54”) quand il existe, en utilisant cette fois une expression régulière “gourmande” qui garde tout ce qui précède le dernier ”;”, celui-ci compris.

    Code :
    perl -ne '/(.*;)/; print qq/$1\n/' compte.txt > output.txt
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  13. #73
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Question: Comment supprimer les lignes vides d'un fichier
    Chapitre : unilignes

    Testé sous: HP-UX et Linux (ainsi que VMS et Windows en remplaçant les apostrophes par des guillemets)

    Pour retirer d'un fichier toutes les lignes vides ou ne comprenant que des espaces blancs :

    Code :
    perl -ne 'print unless /^\s*$/;' mon_fichier.txt > fichier_resultat.txt
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  14. #74
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Question: Comment supprimer les doublons d'un fichier trié
    Chapitre : unilignes

    Testé sous: HP-UX, Linux (ainsi que VMS en remplaçant les apostrophes par des guillemets)

    J'ai un programme qui compare les données clients entre deux applications différentes. L'une des séries de fichiers de sortie contient la liste des numéros de clients pour lesquels il y a des différences. La nature du traitement de comparaison garantit que les numéros de clients sont triés dans l'ordre ascendant, mais si plusieurs différences ont été trouvées, alors le numéro de client se trouve plusieurs fois à la suite. Je désire créer un fichier sans doublons.

    Commande perl qui lit le fichier (préalablement trié) file_in.txt et stocke le résultat dédoublonné dans file_out.txt:

    Code :
    perl -ne 'print $_ if $a ne $_; $a=$_;' file_in.txt > file_out.txt
    L'option -i de la ligne de commande Perl permet de modifier directement le fichier en entrée (modification “sur place”, sans création d'un second fichier).

    Commande Perl qui dédoublonne tous les fichiers DELTA_*.TXT d'un répertoire (cette version avec variable d'environnement Unix ne marchera que sous Unix ou Linux, une retouche est nécessaire sous VMS):

    Code :
    perl -ni -e 'print if $a ne $_; $a=$_;'  $RESULT_PATH/DELTA_*.TXT
    Au fait, à propos d'ordre de tri: commande perl qui lit le fichier file_in.txt et vérifie que chaque ligne est classée dans un ordre croissant et affiche à l'écran les lignes dans le désordre:

    Code :
    perl -ne 'chomp; print "$_ $a\n" if $a gt $_; $a=$_;' file_in.txt
    (On peut aussi faire un sort sur le fichier, mais ça peut être plus long avec un gros fichier. Cette commande peut aussi servir de test pour vérifier qu'un fichier est conforme aux specifications.)

    Si le fichier est très gros, on peut se contenter d'arrêter la recherche dès la première anomalie rencontrée et afficher les deux lignes fautives ainsi que le numéro de ligne:

    Code :
    perl -ne 'print "$. $_ $a\n" and exit if $a gt $_; $a=$_;' file_in.txt
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  15. #75
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    16 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 857
    Points : 491 003
    Points
    491 003

    Par défaut

    Bonjour,

    Les trois questions ont été rajoutées dans la FAQ Perl.

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  16. #76
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Question: Comment lancer plusieurs fois un programme (perl ou autre) avec des paramètres differents
    Chapitre : unilignes

    Testé sous: VMS et HP-UX, mais devrait marcher de la même façon sous Linux et Windows. (Il faut utiliser des apostrophes pour Linux et Unix, et des guillemets pour VMS et Windows.)

    Le programme CHCOEXO345.PL prend en paramètre le nom de la database sur laquelle il doit s'exécuter. On veut le lancer en automatique sur 8 databases.

    On le lance normalement avec, par exemple, la commande suivante (sous VMS):

    Code :
    perl CHCOEXO345_MATRICE.PL  DB07
    La commande Perl suivante permet de lancer en une seule fois ce programme pour l'ensemble des databases:

    Code :
    perl -e "`perl  CHCOEXO345.PL $_` foreach qw /DB01 DB02 DB03 DB04 DB05 DB06 DB07 DB08/"
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  17. #77
    Expert Confirmé

    Inscrit en
    avril 2009
    Messages
    3 062
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : avril 2009
    Messages : 3 062
    Points : 3 925
    Points
    3 925

    Par défaut

    Petite amélioration : remplacer
    `perl ...
    par
    `$0 ...

    Ceci permet de ne pas se soucier de l'exécutable perl utilisé (dans le cas d'une installation de plusieurs perl). Dans ce cas de figure, le même perl est utilisé pour l'uniligne que pour celui lancé par ``).
    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é
    Using strict and warnings is good for you.

  18. #78
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Question: Comment déterminer quels sont les modules Perl installés
    Chapitre : unilignes

    Testé sous: Unix et Linux



    Code :
    perl -M5.10.1 -e 'sub search {for $d (glob "$_[0]/*") { -d $d ? search ($d) : say $d;}} search ($_) for (@INC)'
    Première fois que je fais un script uniligne avec une procédure appelée récursivement.
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

  19. #79
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    16 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 16 857
    Points : 491 003
    Points
    491 003

    Par défaut

    Faut bien un début à tout

    Pour rendre ton programme portable partout, notamment Windows, j'ai utilisé qq.

    Code :
    perl -M5.10.1 -e "sub search {for $d (glob qq|$_[0]/*|) { -d $d ? search ($d) : say $d;}} search ($_) for (@INC)"
    Par contre, ça m'affiche un peu tout et n'importe quoi !
    Tout mon répertoire de perl mais aussi mon répertoire Appdata, Documents...

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  20. #80
    Expert Confirmé

    Homme Profil pro Laurent R.
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2012
    Messages
    1 385
    Détails du profil
    Informations personnelles :
    Nom : Homme Laurent R.
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2012
    Messages : 1 385
    Points : 3 299
    Points
    3 299
    Billets dans le blog
    1

    Par défaut

    Pas ce genre de problème sous Unix ou Linux ou Cygwin.

    Sous Windows pur, je n'ai aucune idée de la façon dont l'environnement est défini.

    On doit pourvoir filtrer
    perl -M5.10.1 -e "sub search {for $d (glob qq|$_[0]/*|) { -d $d ? search ($d) : say $d if $d =~ /\.p?/;}} search ($_) for (@INC)"
    Mes articles sur La programmation fonctionnelle en Perl publiés sur ce site:

    ________
    Sauf mention contraire explicite, les bouts de code que je poste en réponse à une question n'ont pas forcément été testés.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •