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 :

AppleScript : error "sh: -c: line 0: syntax error near unexpected token `(' -Et autres petites questions) [OS X]


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 174
    Points
    4 174
    Par défaut AppleScript : error "sh: -c: line 0: syntax error near unexpected token `(' -Et autres petites questions)
    Bonjour,

    Via AppleScript, je récupère du texte dans des fichiers InDesign (logiciel de PAO pour de la mise en page) afin de les mettre dans un fichier CSV.
    sur l'un des Texte récupéré, je me retrouve avec cette erreur : --> error "sh: -c: line 0: syntax error near unexpected token `('

    j'insère mon texte via des variables de cette manière :
    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	try
    		tell current application to do shell script "echo " & Txt_PDT & " >>$" & RecupText --"/Users/UseName/Desktop/Scripts/HOT FOLDER/OUT/RecupText.csv"
    	end try

    • D'où vient ce problème et comment je peux y remédier svp
    • Est ce que le script du terminal que j'utilise est adéquate pour la création et le remplissage d'un CSV ?
    • Que dois je faire concernant les retours chariot et le retour forcé qui devraient se trouver entre 2 virgules pour la séparation (où dans une même cellule Excel) ?

    Ryu

    Edit : pour le pb, je voulais voir si cela était en rapport avec extglob en l'activant :
    mais cela n'a rien donné …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  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 174
    Points
    4 174
    Par défaut
    Bonjour a tous et aux spécialistes du terminal,

    PS : petite précision : Je me débrouille assez bien en vba et moyen bien en Applescript, ce qui n'est pas le cas avec le terminal de OSX

    Donc voilà, j'ai réussi à éradiquer le problème d'erreur (--> error "sh: -c: line 0: syntax error near unexpected token `(') dans Applescript avec un :
    quoted form of
    Je suppose que dans le terminal il faut alors aussi ajouter les quoted

    je laisse encore un peu ouvert la discussion pour les questions suivantes :
    (PS : je ne demande pas à ce que l'on mon donne les solutions toutes faites, j'aimerai juste des conseils avisés, des direction via liens ou autres)

    • Est ce que le script du terminal que j'utilise est adéquate pour la création et le remplissage d'un CSV ?
    • Que dois je faire concernant les retours chariot et le retour forcé qui devraient se trouver entre 2 virgules pour la séparation (où dans une même cellule Excel) ?

    Merci d'avance
    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Est ce que le script du terminal que j'utilise est adéquate pour la création et le remplissage d'un CSV ?


    Que dois je faire concernant les retours chariot et le retour forcé qui devraient se trouver entre 2 virgules pour la séparation (où dans une même cellule Excel) ?
    Où es-tu ? Dans Excel ? Dans un script ? Ce n'est pas clair. Pourquoi devrais-tu faire quelque chose de spécial ?

    Ceci est un csv avec un retour chariot dans la cellule A1.
    Ceci est un csv avec un retour chariot et des double quotes dans la cellule A1.
    Ce qu'il ne faudra surtout pas faire, c'est considérer qu'un enregistrement égale une ligne.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    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 174
    Points
    4 174
    Par défaut
    Re,

    Merci de tes réponses, je vais essayer d'être plus clair (ce qui n'es pas évident …) :

    Concernant la boule de cristal, le code que j'utilise est celui du terminal d'OS X.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo  "Montexte_Avec_SéparationPar_VIRGULE_pourCSV"  >>$  Chemin_Fichier.csv
    Alors oui je créé mon CSV en écrivant ligne par ligne les séparations sont incluses pour chaque colonnes

    Le code du terminal est lancer via AppleScript et pour écrire les lignes j'utilise des variables récupérant les textes dans certains bloc texte du logiciel INDESIGN d'Adobe
    Code applescript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set Chm to POSIX path of (choose folder)
    -- … code …  code … => ci-dessous les variables texte avec séparation par virgules pour le csv : Pge & "," & Titre & "," & Accroche & "," & Txt
       set Txt_PDT to quoted form of (Pge & "," & Titre & "," & Accroche & "," & Txt) as Unicode text
       set RecupText to quoted form of (Chm & "RecupText.csv") -- <---- le fichier csv
       try
          tell current application to do shell script "echo " & Txt_PDT & " >>$" & RecupText -- <---- le fichier csv et Txt_PDT ma variable texte sur une ligne avec les différentes colonnes
       end try

    PS: j'utilse juste Excel avec une macro pour qq modif, mais le fichier au final reste un CSV
    En effet dans AppleScript, j'ai fait des remplacements pour les bullets et les retours ligne donc je me trouve sur une seule ligne, je les remet avec ce code vba avant de faire le csv final :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub remplace()
    Dim S, R, i As Byte
    S = Array("bullet character", "§v", "forced line break", "§r"):       R = Array(Chr(165), Chr(44), Chr(10), Chr(13))
        With ActiveSheet.UsedRange
            For i = 0 To UBound(S)
                .Replace S(i), R(i)
            Next
            .Columns.EntireColumn.AutoFit
            .Rows.EntireRow.AutoFit
        End With
    End Sub

    voilà en gros le principe

    Edit : agencement du texte
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    D'abord, tu sembles traîner une erreur de syntaxe depuis le début. Pour rediriger vers un fichier sans l'écraser, c'est >>, et pas >>$.
    Évidemment si le fichier est dans une variable, tu pourras avoir >>$file. Mais le dollar appartient à la variable. Pas à la redirection.

    Comme on est dans le forum POSIX, on peut commenter les commandes POSIX. L'applescript ... je passe la main.

    Tu sembles bien en main. As-tu vraiment une question ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    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 174
    Points
    4 174
    Par défaut
    re,

    non sur ce post je n'ai plus de question et les indications que tu m'as donné sont utiles et mon aidé, je te remercie

    Évidemment si le fichier est dans une variable, tu pourras avoir >>$file. Mais le dollar appartient à la variable. Pas à la redirection.
    en effet je me suis rendu compte de cette erreur, et d'ailleurs je l'ai corrigé dans ma nouvelle discussion : https://www.developpez.net/forums/d1...fichier-texte/

    Merci
    Ryu
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

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

Discussions similaires

  1. Lancer JBoss via un autre .bat par défaut
    Par fjouatte dans le forum Wildfly/JBoss
    Réponses: 6
    Dernier message: 04/11/2011, 16h01
  2. Réponses: 2
    Dernier message: 18/02/2009, 09h48
  3. Réponses: 7
    Dernier message: 30/07/2007, 20h11
  4. Lancer un Applescript via 4D
    Par bcatala dans le forum 4D
    Réponses: 2
    Dernier message: 03/05/2007, 19h08
  5. Passer pointeur via message à autre prog
    Par YéTeeh dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/08/2003, 23h08

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