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 :

Boucler sur une liste provenant d'AppleScript via le terminal pour renvoyer le résultat à AppleScript [OS X] [SH]


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 Boucler sur une liste provenant d'AppleScript via le terminal pour renvoyer le résultat à AppleScript
    Bonjour,

    Je me présente :
    Comme le suggère mon pseudo je m'appelle Ryu et je suis autodidacte, je ne suis pas programmeur à la base, mais pour des besoins professionnel et personnel je me suis mis au VBA sur Mac (donc utilisation du forum vba) ; hé oui, plus compliqué vu tout les manques d'Excel sur Mac du à l'utilisation d'ActiveX sur PC …), ce qui m'a amené vers AppleScript puis le terminal de OS X afin de pouvoir faire certaines actions.

    Mon problème aujourd'hui est le suivant :
    j'utilise via une boucle dans AppleScript la commande du terminal suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /Users/UserName/Desktop/ -name xxxxxxx.* | awk -F . '{print $2}'
    /Users/UserName/Desktop/ est une variable (statique) dans AppleScript
    xxxxxxx sont les items d'une liste AppleScript sur laquelle je boucle

    ce que j'aimerai faire, c'est ne plus faire le traitement via la boucle d'AppleScript, mais tout traiter via une boucle du terminal et en récupérer le résultat
    et c'est là où je bloque du à une très mauvaise connaissance du terminal (je suis novice), et un compréhension pas évidente quand on débute … et ce malgré mes recherches

    Je récapitule :
    • Comment puis je envoyer la liste provenant d'AppleScript au terminal
    • Afin de faire une boucle sur celle-ci sur la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /Users/UserName/Desktop/ -name ElémentsDeLaListe.* | awk -F . '{print $2}'
    • pour au final récupérer le résultat du terminal sous forme de liste dans AppleScript

    je vous remercie de tout aide que vous pourriez m'apporter

    Ryu

    Edit : il est bien évident que les réponses seront du code en Terminal OS X et non en AppleScript (chaque code son forum)

  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,

    j'ai un peu avancé mais toujours pas résolu mon problème
    j'ai réussi à faire la boucle dans le terminal, mais je ne sais pas comment inter-agir avec AppleScript

    la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for V in "PRIJAM DU TERME_0001" "TESS DES BEAUX_0003" "UNIVERS DE LA FAYE_0002" "Newtext"
    do
    find /Users/UserName/Desktop/DeveloppezCom/Renommage/Images/ -name "${V}.*" | awk -F . '{print $2}'
    done
    "PRIJAM DU TERME_0001" "TESS DES BEAUX_0003" "UNIVERS DE LA FAYE_0002" "Newtext" est la variable provenant d'AppleScript
    /Users/UserName/Desktop/DeveloppezCom/Renommage/Images/ est le chemin provenant d'AppleScript

    un exemple de code AppleScript sans boucle (car je n'arrive pas à l'intégrer comme le code tu terminal ci-dessus) :
    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set Fold to POSIX path of (choose folder)
    do shell script "find " & quoted form of Fold & " -name " & "'PRIJAM DU TERME_0001'" & ".* | awk -F . '{print $2}'"

    des pistes/idées ?? svp

  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 HELP ME PLEASE => if then else sur le awk
    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 :

    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

  4. #4
    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
    Bonsoir,

    je suis vraiment bloqué j'essaie d'avancé comme je peux
    Bonjour Ryu,

    je ne connais pas bien applescript, mais assez bien les outils bash, awk, sed...

    je n'ai pas tout compris ce que tu demandes...

    notamment si tu veux faire du bash qui appelle de l'applescript ou le contraire ou les deux...

    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 :

    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
    Il y a tellement d'erreurs dans les arguments du "awk" que c'est difficile de toutes les expliquer!

    À chaque itération, c'est-à-dire pour chaque V de la liste, le find /Users/KAB/Desktop/DeveloppezCom/Renommage/Images/ -name "${V}.*" cherche, dans le répertoire donné, les fichiers dont le nom commence par la valeur de V, avec une extension quelconque et retourne, sur la sortie standard, la liste de ces noms (séparés par des fins de ligne).

    Il semblerait que tu veuilles ensuite récupérer l'extension de ces fichiers.

    C'est bien ça?

    EDIT: Oops! je n'avais pas vu que tu avais créé un nouveau post avec la même question...

  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 jack-ft,

    en effet c'est bien cela, je cherche bien à récupérer les extensions des fichiers

    mon but ici et d'utiliser les les commandes du terminal via AppleScript par le biais de la commande A.S. "do shell script"

    pour être plus précis je fais du VBA sur Excel Mac 2011 car j'en ai besoin pour traiter certaines données, mais c'est loin du niveau de Excel sur PC,
    car sur Mac on a pas accès à certaines fonctions propre au PC (utilisant par exemple les ActiveX)
    et des bogues restent encore sur certaines fonctions existantes sur Mac comme par exemple GetOpenFilename (ou fonctions amoindris)

    Donc pour étendre les possibilités sur Excel Mac, on a la fonction MacScript qui permet d'exécuter un code AppleScript qui lui même peut exécuter un code en shell avec "do shell script"

    j'ai déjà commencé à gouter au terminal mais des choses très simple, mais plus j'en goutte plus je suis intéressé à en connaitre plus

    du coup maintenant j'essaie petit à petit de progressé dans ces 3 languages

    PS : Merci de ta réponse sur l'autre post - je remet le lien pour ce qui passe par là : https://www.developpez.net/forums/d1...then-else-awk/


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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/04/2016, 21h54
  2. Boucler un code sur une liste de fichiers
    Par Andromedae dans le forum Général Python
    Réponses: 6
    Dernier message: 05/03/2016, 09h35
  3. [SP-2010] calcul sur une colonne provenant d'une autre liste
    Par tortuegenie dans le forum SharePoint
    Réponses: 3
    Dernier message: 01/08/2011, 13h21
  4. boucler sur une liste de couple
    Par sasseur dans le forum C#
    Réponses: 3
    Dernier message: 17/09/2010, 21h47
  5. Boucler sur une liste passée en paramètre
    Par samalairbien dans le forum iReport
    Réponses: 0
    Dernier message: 30/11/2009, 16h12

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