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

Shell et commandes POSIX Discussion :

[awk] if then else


Sujet :

Shell et commandes POSIX

  1. #1
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut [awk] if then else
    Bonsoir,

    je suis vraiment bloqué j'essaie d'avancé comme je peux mais je n'arrive pas à faire cette condition if then else sur le awk,
    pouvez vous m'expliquer ce qui ne vas pas avec ce script
    j'aimerai que si il trouve le $2 il m'envoie le print de celui-ci, et si il ne trouve rien qu'il me renvoie no match :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for V in "PRIJAM DU TERME_0001" "TESS DES BEAUX_0003" "UNIVERS DE LA FAYE_0002" "Newtext"
    do find /Users/KAB/Desktop/DeveloppezCom/Renommage/Images/ -name "${V}.*" | awk -F . { [[ '${#2} > 0 ]] && '{print $2}' || '{print "no match"}' }
    done

  2. #2
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    re,

    je suis peut être à peu de chose de la solution, mais je ne trouve tjs pas, y a t-il un âme charitable pour m'aider;
    mon dernier code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for V in "PRIJAM DU TERME_0001" "TESS DES BEAUX_003" "UNIVERS DE LA FAYE_0002" "Newtext"
    do find /Users/KAB/Desktop/DeveloppezCom/Renommage/Images/ -name "${V}.*" | awk -F . '{if ($2>0) print $2; else print "no match"}'
    done
    mon résultat avec ce code est :
    jpg
    jpg
    txt


    mais devrait être en réalité (ce que je n'arrive pas à obtenir pour le moment) :
    jpg
    no match
    jpg
    txt

  3. #3
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    bonjour,

    je crois avoir compris pourquoi "no match" ne peut pas apparaître dans les résultats,
    car comme le nom du fichier ne peut correspondre à aucun des noms des fichiers dans le dossier source, le résultat du awk ne pourra renvoyer le résultat

    dans ce cas là comment puis je faire/quelles sont les modifications à faire avec mon code dans le post précédent, afin que "no match" puisse apparaitre dans les résultats ??

    PS : je vois qu'il n y a pas grand monde qui passe, mais si à tout hazard une âme charitable s'arrête sur ce post pour m'aider, ça serait cool.
    j'ai écumé un très grand nombre de recherches internet sans grand résultat - ça avance à pas de fourmis

    Ryu

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    La logique de ce que tu veux faire n'est pas très claire mais voilà ce qui devrait quand même faire ton bonheur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for V in "PRIJAM DU TERME_0001" "TESS DES BEAUX_003" "UNIVERS DE LA FAYE_0002" "Newtext" ; do
        find /Users/KAB/Desktop/DeveloppezCom/Renommage/Images/ -name "${V}.*"  |  awk -F . '{found=1}END{print found?$2:"not found"}'
    done

  5. #5
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonsoir,

    Merci beaucoup c'est exactement ça, ça marche nickel
    par contre malgré toutes mes recherches, je ne suis jamais tombé sur found.
    Dans le code je suppose que BEGIN est sous entendu et après le END on a l'une des 2 réponses (séparé par les 2 points) selon la situation.
    Mais j'ai un peu du mal à comprendre la logique du code => found=1
    j'ai fais un test pour savoir si un fichier existe est le résultat est 0 quand c'est ok et 1 quand il existe pas.

    j'ai néanmoins besoin de petites explications pour ma compréhension comme le monde du terminal est tout nouveau pour moi svp !

    merci

    Ryu

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    par contre malgré toutes mes recherches, je ne suis jamais tombé sur found.
    Normal, c'est un nom « arbitraire » de variable, j'aurais pu mettre toto=1.

    Dans le code je suppose que BEGIN est sous entendu
    Non, il n'y a pas besoin de BEGIN.

    et après le END on a l'une des 2 réponses (séparé par les 2 points) selon la situation.
    Oui, dans le bloc END, j'utilise un opérateur ternaire, décrit par exemple ici (en C car c'est de ce langage qu'il provient).

    Mais j'ai une peu du mal à comprendre la logique du code => found=1
    Quand le find sort quelque chose, le fichier satisfait au test demandé, il n'est pas nécessaire de faire autre chose, le bloc awk met la variable à 1 dès que find à trouvé un fichier.

  7. #7
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    re,

    dernière petite question, j'ai essayé de remplacé "not found" par "le fichier n'existe pas"
    je me suis rendu compte que le code ne fonctionnait plus normalement alors j'ai voulu échapper l'apostrophe avec \ comme cela :
    "le fichier n\'existe pas"
    mais ça ne marche toujours pas, j'ai fait d'autres tests et chou blanc
    il me semblait pourtant qu'il fallait échapper certains caractères avec l'anti-slash, n'est ce pas la règle ??

    Dans tous les cas grand merci pour m'avoir enlever une épine du pied et de toutes ces précisions

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F . '{found=1}END{print found?$2:"le fichier n'"'"'existe pas"}'

  9. #9
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonjour,

    Merci

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F . '{found=1}END{print found?$2:"le fichier n'"'"'existe pas"}'
    Remarque: S'il peut y avoir plusieurs fichiers avec le même nom et des extensions différentes, le script proposé ne donne que la dernière.

    Celui-ci les donne toutes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F . 'BEGIN{found=0}{found=1; print $2}END{if (! found) {print "le fichier n'"'"'existe pas"}}'
    Pour améliorer la lisibilité (pour mes petits yeux), j'ai ajouté l'inutile (car implicite) BEGIN {found=0}.

  11. #11
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonjour jack-ft,

    Merci bcp pour tes réponses.
    Bien joué, je n'avais pas pensé à cette situation du même nom, extension différente
    je ne peux tester de suite mais je le ferais dès que je serai rentré ce soir.

    PS : oui désolé j'ai fait un second post se concentrant uniquement sur la partie du terminal, de peur que VBA et applescript fasse fuir les réponses, puisque ce forum n'en est pas le sujet

  12. #12
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonsoir jack-ft,

    j'ai testé ça marche nickel merci
    avec le nombre de recherches que j'ai déjà effectué, le programme de AWK à l'air super intéressant vu toutes les possibilités offertes … de ce que j'ai pu déjà lire

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    j'ai testé ça marche nickel merci
    Super!

    avec le nombre de recherches que j'ai déjà effectué, le programme de AWK à l'air super intéressant vu toutes les possibilités offertes … de ce que j'ai pu déjà lire
    Oui. Comme je ne suis pas suffisamment à l'aise avec "perl" et "python", j'utilise souvent "awk" pour traiter des fichiers structurés, surtout s'il y a un aspect "automate d'états finis", car c'est un vrai langage de programmation, puissant, simple et clair!

    Dès que c'est un peu complexe, j'écris le programme dans un fichier "awk" bien indenté avec commentaires et tout ce qu'il faut pour le rendre simple à maintenir et je l'appelle avec awk -f.

    Sinon, j'utilise aussi beaucoup "emacs-lisp"... mais c'est une autre histoire...

  14. #14
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonsoir jack-ft,
    je sais que j'ai clos le sujet, et je suis très satisfait des réponses, mais j'aimerai revenir sur un point

    il peut y avoir plusieurs fichiers avec le même nom et des extensions différentes, le script proposé ne donne que la dernière.
    la réponse que tu m'as donné résout le problème du même nom plusieurs extensions,
    mais maintenant le problème que je rencontre c'est que le résultat se met sur une nouvelle ligne pour un même nom trouvé; ex. :

    NOMS FICHIERS RÉSULTAT DU TERMINAL => EXTENSIONS
    NomsFichier1 NomExtensionDuNomsFichier1
    NomsFichier2 NomExtensionDuNomsFichier2
    NomsFichier3 NomExtensionDuNomsFichier3_1
    NomsFichier4 NomExtensionDuNomsFichier3_2
    NomsFichier5 NomExtensionDuNomsFichier3_3
    NomsFichier6 NomExtensionDuNomsFichier4
    NomsFichier7 NomExtensionDuNomsFichier5
    Le fichier n'existe pas
    NomExtensionDuNomsFichier7

    Comme tu peux le voir si j'envoie dans ma variable un nom de fichier et que ce nom se retrouve plusieurs fois avec des extensions différentes (dans l'exemple ici "NomsFichier3"),
    je vais me retrouver avec un décalage pour faire correspondre toutes les extensions au nom de fichier leurs correspondant

    Ce que j'aimerai, c'est lorsqu'un nom de fichier trouve plusieurs extensions lui correspondant, mettre le résultat des extensions trouvées sur la même ligne avec un séparateur
    Exemple :

    NOMS FICHIERS RÉSULTAT DU TERMINAL => EXTENSIONS
    NomsFichier1 NomExtensionDuNomsFichier1
    NomsFichier2 NomExtensionDuNomsFichier2
    NomsFichier3 NomExtensionDuNomsFichier3_1 | NomExtensionDuNomsFichier3_2 | NomExtensionDuNomsFichier3_3
    NomsFichier4 NomExtensionDuNomsFichier4
    NomsFichier5 NomExtensionDuNomsFichier5
    NomsFichier6 Le fichier n'existe pas
    NomsFichier7 NomExtensionDuNomsFichier7

    Est ce possible ? car je ne vois pas du tout comment m'y prendre (je suis allé chercher la difficulté )

    Si oui, comment doit-je faire svp ??

    Ryu

  15. #15
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Voilà une façon de le faire si tu utilises GNU awk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for V in "PRIJAM DU TERME_0001" "TESS DES BEAUX_003" "UNIVERS DE LA FAYE_0002" "Newtext" ; do
        find /Users/KAB/Desktop/DeveloppezCom/Renommage/Images/ -name "${V}.*"  |  awk -F . -v name="$V" '
        { found[$2]=i++ }
        END{
            printf("name(%s): ",name)
            PROCINFO["sorted_in"]="@val_num_asc"
            for(i in found) printf(found[i]==0?"%s":" | %s",i);
            if(length(found)==0) printf("le fichier n'"'"'existe pas")
            printf("\n")
        }'
    done
    Sinon, voila une méthode portable et qui n'utilise pas awk:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        for V in  "PRIJAM DU TERME_0001" "TESS DES BEAUX_003" "UNIVERS DE LA FAYE_0002" "Newtext" ; do
            printf "%s: " "$V"
            extensions=$(find /Users/KAB/Desktop/DeveloppezCom/Renommage/Images -name "${V}.*" -exec sh -c '
            sep=""
            for i do printf "%s%s" "$sep" "${i##*.}" ; sep=" | "
            done' sh {} +)
            [ "$extensions" ] && printf "%s\n" "$extensions" || printf "le fichier n'existe pas\n"
        done

  16. #16
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonsoir,

    Désolé de ma réponse tardive,
    je te remercie tout d'abord pour tes réponses
    je teste tout cela et fait un retour.

    Edit :

    Pour le 1er code :

    il fait bien son travail mais il ne met pas correctement la séparation sur les 2 1ère extensions, le résultat sera plus parlant :
    name(PRIJAM DU TERME_0001): | txtjpeg | pdf | jpg
    name(TESS DES BEAUX_003): le fichier n'existe pas
    name(UNIVERS DE LA FAYE_0002): jpg
    name(Newtext): txt

    sur le 2ème test même résultat:
    name(PRIJAM DU TERME_0001): | txtjpeg | pdf | jpg
    name(TESS DES BEAUX_003): le fichier n'existe pas
    name(UNIVERS DE LA FAYE_0002): | txtjpg
    name(Newtext): txt


    Pour le 2ème code :

    Le résultat est parfait
    PRIJAM DU TERME_0001: jpeg | jpg | pdf | txt
    TESS DES BEAUX_003: le fichier n'existe pas
    UNIVERS DE LA FAYE_0002: jpg | txt
    Newtext: txt


    Ce type de code est pour l'instant un peu trop compliqué pour que j'en comprenne tous le sens, c'es tout nouveau pour moi
    quelques explications seraient un plus

    En tout cas

  17. #17
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Pour le 1er code :

    il fait bien son travail mais il ne met pas correctement la séparation sur les 2 1ère extensions
    Tu n'a pas fais attention au prérequis: si tu utilises GNU awk

    Le problème rencontré est certainement la conséquence d'une version de awk qui ne dispose pas des extensions GNU.
    C'est pour ça que j'ai ajouté une version shell qui n'a pas besoin de GNU puisqu'on est dans le forum POSIX.

    Pour le 2ème code :

    Ce type de code est pour l'instant un peu trop compliqué pour que j'en comprenne tous le sens, c'es tout nouveau pour moi
    quelques explications seraient un plus
    Voilà le même code commenté:

    for V in  "PRIJAM DU TERME_0001" "TESS DES BEAUX_003" "UNIVERS DE LA FAYE_0002" "Newtext" ; do
        printf "%s: " "$V"      # On affiche le nom du fichier sans extension et sans retour à la ligne
        extensions=$(           # La variable "extensions" va contenir le résultat de la commande qui suit, contenue dans le bloc entre parenthèses
            find /Users/KAB/Desktop/DeveloppezCom/Renommage/Images -name "${V}.*" -exec sh -c '
                                # On appelle le script shell suivant en lui passant en paramètre tous les fichiers correspondant au nom et avec une extension quelconque
            sep=""              # La variable sep (séparateur) est initialisée avec une chaine vide car il n'y a pas de séparateur avant le premier élément de la liste 
            for i do            # On boucle sur chaque extension (équivalent de "for i in "$@"; do" )
                printf "%s%s" "$sep" "${i##*.}" 
                                # On affiche le séparateur suivi de l'extension: ${i##*.} affiche le contenu de la variable i duquel on a retiré tout jusqu'au dernier "."
                sep=" | "       # S'il y a plus d'un extension, le séparateur " | " sera utilisé
            done' sh {} +       # On passe tous les noms de fichiers trouvés en paramètre du script shell 
            )
        [ "$extensions" ] && printf "%s\n" "$extensions" || printf "le fichier n'existe pas\n"
                                # Si la variable "extensions" n'est pas vide, on l'affiche, sinon, on affiche le message qui va bien
    done

  18. #18
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonjour,

    Merci de ta réponse
    Citation Envoyé par jlliagre Voir le message
    Tu n'a pas fais attention au prérequis: si tu utilises GNU awk
    Désolé mes connaissances ne sont pas au top, je suis allé voir sur le net pour mieux comprendre
    Donc si j'ai bien compris : Linux/GNU , hors moi je suis sur OS X et je suis allé regarder la version de awk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    awk -version
    # awk version 20070501
    donc en effet ça n'a pas l'air de correspondre (je pensais à tort que toutes les commandes awk étaient les mêmes)
    pour mieux comprendre ce qu'est POSIX, j'ai vu entre autre ce lien : https://www.developpez.net/forums/d1.../posix-c-quoi/

    Merci pour les explications

    Ryu

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Donc si j'ai bien compris : Linux/GNU , hors moi je suis sur OS X et je suis allé regarder la version de awk:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    awk -version
    # awk version 20070501
    donc en effet ça n'a pas l'air de correspondre (je pensais à tort que toutes les commandes awk étaient les mêmes)
    Je suis aussi sous macos:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ uname -a
    Darwin MBPR15-jack 15.6.0 Darwin Kernel Version 15.6.0: Fri Feb 17 10:21:18 PST 2017; root:xnu-3248.60.11.4.1~1/RELEASE_X86_64 x86_64
     
    $ awk -version
    awk version 20070501
     
    $ gawk --version
    GNU Awk 4.1.4, API: 1.1
    Copyright © 1998, 1991-2016 Free Software Foundation.
     
    $ which gawk
    /opt/local/bin/gawk
    Donc, oui, même sous macos, on peut utiliser les outils GNU!

    PS: Je crois avoir installé "gawk" avec "macport" il y a quelques années (l'installation avec "brew" avait probablement échoué...)

  20. #20
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 176
    Points
    4 176
    Par défaut
    Bonjour jack-ft,

    Merci pour ce complément d'information

    J'aimerai savoir si il y a un grand intérêt à ce que j'installe gawk ? Quels en sont les avantages et les inconvénients ?
    Comment dois je m'y prendre si je veux installer gawk sur OS X pour éviter de faire une bourde ?

    En allant sur le net, j'ai cru comprendre que POSIX est le standard pour l'utilisation de la ligne de commande afin d'avoir une portabilité multi-plateformes.
    Dans quel cas je serai amené à utiliser plus particulièrement POSIX ?

    jack-ft

    Edit : remplacement de "terminal" par "ligne de commande"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] if...then...else
    Par jive dans le forum ASP
    Réponses: 5
    Dernier message: 16/09/2005, 14h11
  2. [TagLib] Structure if then else
    Par mush_H dans le forum Taglibs
    Réponses: 5
    Dernier message: 19/07/2005, 15h31
  3. If Then Else
    Par Piout dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 24/02/2005, 16h09
  4. IF THEN ELSE imbriqués
    Par nuke_y dans le forum Oracle
    Réponses: 2
    Dernier message: 15/11/2004, 14h57
  5. [CR 7] [débutante] pb avec if then else
    Par xs_nady dans le forum Formules
    Réponses: 8
    Dernier message: 28/05/2004, 15h36

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